AWK - ファイルの最初の列が指すファイルの内容を取得する方法

AWK - ファイルの最初の列が指すファイルの内容を取得する方法

次の内容を含む f1.txt ファイルがあります。

file1 file2
file3 file4

file1の内容は次のとおりです。

student1 10
student2 20

ここで、f1.txtから最初の列を取得し、awkを使用してfile1の内容を印刷しようとしています。私はそれを試しましたが、うまくawk '{print $1}' f1.txt | cat $1いきませんでした。 file1の内容を取得するために使用できる簡単な方法はありますかawk

答え1

これは、awkのデータに対して処理を行わずにawkを使用してデータを選択するだけで、xargsに適しています。例:

awk '{ print $1; }' | xargs cat

これは、catの複数の引数を収集するxargsに比べて利点があるため、systemより効率的です。

答え2

awkここで関数を呼び出してsystem外部コマンドを実行できます。

awk '{system("cat "$1)}' f1.txt

file1または代わりにコンテンツを印刷したい場合file3

awk 'NR==1{system("cat "$1)}' f1.txt

関連情報