awk で パターン 否定の時の落し穴2019年01月30日 14時13分04秒

awk でパターンに適合した物を抽出する場合はスラッシュを使う。
% awk '/match/'
not found
match
match
^D
%

逆に非適合にする場合には、ビックリマークの ! を付けることで出来るはずだが、

% awk '!/match/'
/match/: Event not found.
変な事になっている。

シェルに依存するのだが、! は以前のコマンドを探すようになっている物も多い。上記のは tcsh での実行例。 「/match/」で始まる、コマンドを探して実行しているのだ。

シェル上で実行するには 「!」 と 「/」にすき間を入れる。

% awk '! /match/'
match
good
good
^D
%
またはファイルから渡しても良い。
% cat match.awk 
!/match/
% awk -f match.awk 
match
good
good
^D
%

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2019/01/30/9030493/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。