コマンド出力を配列に保存し、1つずつ印刷します。

コマンド出力を配列に保存し、1つずつ印刷します。

これは私のコマンドです:

cat httpd.conf | grep ^LogFormat | awk -F\" '{print $(NF)}'

出力:

commonsess
common

または、値の数に制限はなく、この値を配列に保存してインデックス番号を使用して1つずつ印刷する必要があります。

ベストアンサー1

シェルで配列やループを使用することは、一般的にコーディング習慣が悪いという信号です。シェルは他のコマンドを実行するためのツールです。awkテキストレコードのフィールドを使用して複雑な操作を実行するための一般的なコマンド。awk何百ものコマンドループを実行するのではなく、ジョブに対して一度呼び出したいと思います。

次から始まる行のインデックスと最後のフィールド名を印刷する場合^LogFormat:

awk '/^LogFormat/{print n++, $NF}' httpd.conf

cat(接続のため)、grepawkyesの親セットgrep)、シェル配列やシェルループは必要ありません。

おすすめ記事