7

awk ファイルから別の awk ファイルを実行することは可能ですか? awk ファイルを使用して、現在のフォルダー内のすべての awk ファイルを実行する必要があります。awkでそのような操作を行うことは可能ですか?

4

4 に答える 4

7

はい、できます。この関数を使用する必要がありsystem()ます。これらのスクリプトを1回だけ実行したいと思います。その場合は、それらをBEGINラッパースクリプトのブロックに追加できます。

BEGIN {
    system("awk -f ./script1.awk")
    system("awk -f ./script2.awk")
    system("awk -f ./script3.awk")
}

実行する必要のあるスクリプトが多数ある場合は、forループを使用できます。ラッパースクリプトが、実行する他のすべてのスクリプトと同じディレクトリにないことを確認してください。同じディレクトリにない場合は、スクリプトawkのグロブに含まれawkます...

BEGIN {
    system("for i in *.awk; do awk -f \"$i\"; done")
}
于 2012-11-22T12:58:17.847 に答える
6

1) はい。2) しないでください。

awk は、テキストを処理するためのツールです。シェル (または OS で渡されるもの) は、コマンドを呼び出し、ファイルとプロセスを操作するためのツールです。

ファイルシステムですべての awk コマンドを実行するには、どれを使用すればよいと思いますか?

あなたのより大きな問題とあなたのOSを教えていただければ、私たちがあなたを導くことができます.

于 2012-11-22T15:34:24.463 に答える
0

system の一般的な用途は、awk スクリプトによって作成されたばかりの出力ファイルで何かを行うために使用することです。system を呼び出す前に最初に close(outputfile) しないと動作しない場合があります。

于 2014-02-10T01:03:36.620 に答える