2つのテキストファイルがあります。最初の「file1.txt」の内容は次のとおりです。
Apple
Orange
Banana
2番目のファイル「file2.txt」の内容は次のとおりです。
monday
tuesday
wednesday
私はそれらを1つのファイルに結合したいと思います。結果は次のとおりです。
Apple File1.txt
Orange File1.txt
Banana File1.txt
monday File2.txt
tuesday File2.txt
wednesday File2.txt
ベストアンサー1
これは非常に些細なことですawk
。
$ awk '{print $0,FILENAME}' File*.txt
Apple File1.txt
Orange File1.txt
Banana File1.txt
monday File2.txt
tuesday File2.txt
wednesday File2.txt
入力行とファイル名の間にスペースの代わりにタブが必要な場合は、-v OFS='\t'
コマンドラインに追加して出力フィールド区切り記号(OFS)を設定します。
awk -v OFS='\t' '{print $0,FILENAME}' File*.txt
または以下を使用してください。
awk '{print $0 "\t" FILENAME}' File*.txt
ファイル名に=
文字がないとします。ファイル名に文字が含まれていないことを保証できない場合は、=
次のように変更できます。
awk '{print $0 "\t" substr(FILENAME, 3)}' ./File*.txt
少なくともGNUでは、ファイル名に有効な文字を形成しないバイトが含まれていると警告が表示されますが((使用awk
ロケールC
LC_ALL=C awk...