- ベストアンサー
awkの _ はどういう表現でしょうか?
Kシェルのスクリプトを読んでいます。 awk内で _ が使用されているのですが、 _ はどういった表現なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
awk '$1~/_[0-9]/{print $1}' ですので,awk のパターン記述部のアンダースコアになります.これは,普通の文字として認識されますので,パターン部の前の$1チルダ"$1~",および後ろの正規表現[0-9]を加味すると, 入力レコード一番目 ($1) _0 _1 _2 : : _9 のいずれかにマッチする行に関して,アクション{print $1}を実行するという意味でOKだと思います. awk もバージョン(GNU awk か,そうでないかなど)によってその辺の解釈がまちまちですので,私の解釈が実際の動作と合わない場合はまた質問してください.
その他の回答 (1)
- graycat000
- ベストアンサー率51% (53/102)
回答No.1
awk のパターン記述部分や,アクション部分のアンダースコア"_"には特に意味はありません,普通の語の一部です. ただし,Kシェルの特殊変数には "$_" というものがあり,それは直前のコマンドの最後の引数を示しています.スクリプトの awk コマンドの記述にKシェルの特殊変数が参照されていたのではないでしょうか? または,そのスクリプトを示していただければ,もっとアドバイスできるかもしれません.
質問者
補足
ありがとうございます。 以下のようにawkが使われています。 for hogehoge in `ls /hoge |awk '$1~/_[0-9]/{print $1}'` do ..... ..... ..... done いかがでしょうか?
お礼
ありがとうございました。 とても助かりました。