1

こんにちは、for ループで gawk を使用したいと考えています。このようなもの:

for i in gawk {print $1} | tr '\n' ' '
do something using $i

これはもちろん機能していません。アイデア?

4

3 に答える 3

3

逆引用符が欠落しているか$(...)、awk コマンドを評価する必要があります。

for i in $(ls -l | gawk '{print $1}' | tr '\n' ' ')
do
       echo $i
done

最後の tr コマンドは必要ありませんが、暗黙的なコマンドからの出力では$(...)、このコンテキストでは改行がスペースに変換されるためです。

于 2009-09-07T22:24:02.370 に答える
1

上記の回答では、gawk がサブルーチンで、bash がドライバーです。

もう 1 つの方法は、組み込みのシステムコマンドを使用して gawk をドライバーにすることです。

例えば:

ls | gawk '/^a/ { system("ls -lsa " $1)}'

これは、(たとえば) Bash の文字列処理ツールが少し難解すぎる場合に便利です。

于 2012-10-08T03:25:15.573 に答える
0

awk / gawkの例を含むシェルコード

for i in `echo how now | gawk '/how/ { print $2 }'`; do
    echo ...$i
done

$ sh test.sh
...now
$ 
于 2009-09-07T22:29:09.053 に答える