特定の単語を含む行を除外しようとしています。正規表現は、スクリプトへのコマンドライン入力です。
$0 ~ regex {
//Do something.
}
入力例は次のとおりです。
**String** **number**
domain 1
domain 2
bla 3
したがって、上記の入力から、ユーザーは言うことができます-Word「ドメイン」を持つ行をフィルターで除外します。
私が試したこと:
regex = "\?\\!domain"
(否定先読み)。
しかし、この正規表現はすべての行を除外しています。 Word「ドメイン」のある行だけではありません。
以下を含む指定された入力ファイルinput
の場合:
domain
demesne
domain
を含む行をフィルタリングするには:
$ awk '/domain/ { print }' input
domain
行をフィルターするにはnotdomain
を含む:
$ awk '!/domain/ {print }' input
demesne
行全体ではなくfieldに基づいてフィルタリングする場合は、新しく指定されたinput
ファイルに対して次のことを試すことができます。
example www.example.com
exemplar www.example.net
最初のフィールドcontainsexample
の行を除外するには:
$ awk '$1 !~ /example/ { print }' input
exemplar www.example.net
あなたの質問では、$0
これは、最初のフィールドではなく行全体です。