
この混乱で私を導いてください。よろしくお願いします。
2つの.outファイルから入力を受け取り、.txtファイルを生成するawkスクリプトを作成する必要がある状況があります。
$ cat file1.sh
awk -f awk_file.awk < outfile1.out outfile2.out > text_file.txt
次のような.txtファイルを表示したいと思います。
---ファイル1の出力------------
column1 column2 column3
--------------------------------------------
columns i will pick from outfile1.out
columns i will pick from outfile1.out
--------------------------------------------
Total no. of columns from outfile1.out
/////////////////////////////////////////////////// -------------------ファイル2の出力------------
column1 column2 column3 column4 column5
-------------------------------------------
columns i will pick from outfile2.out
columns i will pick from outfile2.out
columns i will pick from outfile2.out
columns i will pick from outfile2.out
----------------------------------------
Total no. of columns from outfile2.out
text_file.txtを生成する方法は? ? ?
答え1
それはすべてあなたが望むものに依存します。ファイルを 1 つずつ処理するには、ループを使用して両方のファイルで awk スクリプトを順次呼び出して、出力をリダイレクトします。
(for file in outfile1.out outfile2.out; do awk -f awk_file.awk < "$file"; done) > text_file.txt
または2つのファイルの場合
(awk -f awk_file.awk < outfile1.out; awk -f awk_file.awk < outfile2.out) > text_file.txt
awkでファイルを処理する前にファイルをマージするには(単一ファイルとして扱う)、次のようにします。
cat outfile1.out outfile2.out | awk -f awk_file.awk > text_file.txt
ツールがうまく機能するようにし、シェルがフラグメントを機能的なスクリプトにまとめるようにするのは良い習慣です。