1

AWK スクリプトから呼び出したシステム コマンドの出力がターミナルに表示されています。シェルにシステム コマンドの出力を表示させたくありませんが、この出力をスクリプトの変数に読み込む必要があります (システム コマンドの出力は、"yes" または "no" のいずれかの 1 語の文字列です)。 . 次に、この変数をスクリプト内の文字列と比較する必要があり ("yes" または "no" の場合)、コマンドからの出力を最終的に新しいファイルに保存する必要があります。AWK でこれを行うにはどうすればよいですか?

4

1 に答える 1

2
"command" | getline var

これが実行commandされ、出力が一度に 1 行ずつ variable に入れられますvar。例えば

$ awk 'BEGIN{while("seq 3" | getline x) print "output: " x}'
output: 1
output: 2
output: 3

そして、それは呼び出し間でも持続します:

$ seq 3 | awk '{"seq 4 7" | getline x; print x}'
4
5
6

4 行目の入力がないため、7 は出力されないことに注意してください。

ここの投稿では|&、man ページには表示されないusing が示されていますが、その違いがわかりません。stderr もキャプチャする可能性があると思いましたが、私のテストではそうではありません。

于 2012-08-14T12:32:46.393 に答える