ファイルがあります。
1 IF 9/1 Joe
2 IF 9/1 Marry
3 IF 9/12 Larry
4 IF 9/15 Page
IF 9/1
私は単に未使用のものを印刷したいと思いますgrep
。私は使用できることを知っています。
grep -Fvx 'IF 9/1' file.txt
しかし、何らかの理由で予想される結果は得られませんでした。
答え1
-x
grep
行全体が一致するようにします。以下を行う必要があります。
grep -Fv 'IF 9/1[^[:alnum:]_]' file
答え2
問題はこれが9/1
また一致することである9/12
。したがって、以下を使用してください。
grep -Fv 'IF 9/1 ' file.txt
また、x
オプションを使用しないでください。行全体と正確に一致する一致のみを選択します。
答え3
はい、あなたが言ったがgrep
ブールawk
条件が含まれている場合、解決策は一般的にあまり神秘的ではなく簡単に見えます。
awk '!($2=="IF" && $3=="9/1")' file.txt
答え4
grep
PCRE(Perl互換正規表現)を使用できます。
$ grep -P 'IF 9/1(?! )' file.txt
3 IF 9/12 Larry
4 IF 9/15 Page
(?! )
幅がゼロの否定予測モードで、後にスペースがないことを確認します。IF 9/1
つまり、後にスペース以外の文字が1つ以上あることを確認します。これにより、目的の結果が得られます。