awkファイルの複数入力

awkファイルの複数入力

この混乱で私を導いてください。よろしくお願いします。

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

ツールがうまく機能するようにし、シェルがフラグメントを機能的なスクリプトにまとめるようにするのは良い習慣です。

おすすめ記事