ABC.txtという2つのファイルがあるとします。 &PQR.txt 例として以下に示すデータを使用します:
ABC.txt:
ABC DEF
PQR.txt:
PQR XYZ
grepしたい 両方のファイルの列1を作成し、3番目のテキストファイルに書き込みます。どうすればいいですか?
期待される出力は(output.txt):
ABC PQR
承認された回答:
いくつかの方法があります:
-
pasteの使用 およびcut:$ paste -d ' ' <(cut -d' ' -f 1 ABC.txt ) <(cut -d' ' -f 1 PQR.txt ) > output.txt ABC PQRシステムがプロセス置換をサポートしていない場合は、代わりにこれを使用してください:
$ cut -d' ' -f 1 ABC.txt > /tmp/aa; cut -d' ' -f 1 PQR.txt > /tmp/bb; paste -d ' ' /tmp/aa /tmp/bb -
awkを使用する (@Costasに感謝):awk 'FNR==NR{a[FNR]=$1; next}{print a[FNR],$1}' ABC.txt PQR.txt > output.txt特殊変数
FNR現在の入力ファイルの行番号とNRは、入力元のファイルに関係なく、一般的な入力の行番号です。この2つは、最初の入力ファイルが読み取られている間だけ等しくなります。したがって、最初のファイルの最初のフィールドはaに保存されます 配列(a[FNR]=$1)キーが行番号で、値が1番目のフィールドです。次に、2番目のファイルに到達すると、その行番号(a[NR])に対応する値を出力します。 )および現在の行の最初のフィールド。