• ベストアンサー

awkの _ はどういう表現でしょうか?

Kシェルのスクリプトを読んでいます。 awk内で _ が使用されているのですが、 _ はどういった表現なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

awk '$1~/_[0-9]/{print $1}' ですので,awk のパターン記述部のアンダースコアになります.これは,普通の文字として認識されますので,パターン部の前の$1チルダ"$1~",および後ろの正規表現[0-9]を加味すると, 入力レコード一番目 ($1) _0 _1 _2 : : _9 のいずれかにマッチする行に関して,アクション{print $1}を実行するという意味でOKだと思います. awk もバージョン(GNU awk か,そうでないかなど)によってその辺の解釈がまちまちですので,私の解釈が実際の動作と合わない場合はまた質問してください.

kazuau2002
質問者

お礼

ありがとうございました。 とても助かりました。

その他の回答 (1)

回答No.1

awk のパターン記述部分や,アクション部分のアンダースコア"_"には特に意味はありません,普通の語の一部です. ただし,Kシェルの特殊変数には "$_" というものがあり,それは直前のコマンドの最後の引数を示しています.スクリプトの awk コマンドの記述にKシェルの特殊変数が参照されていたのではないでしょうか? または,そのスクリプトを示していただければ,もっとアドバイスできるかもしれません.

kazuau2002
質問者

補足

ありがとうございます。 以下のようにawkが使われています。 for hogehoge in `ls /hoge |awk '$1~/_[0-9]/{print $1}'` do ..... ..... ..... done いかがでしょうか?

関連するQ&A