私はこの行を書いたdiff fileA.txt fileB.txt | grep -v "^[11,12d9]"
。このgrep
セクションがない場合、出力は次のようになります。
1d0
< loop
11,12d9
< polo
< pool
ただし、使用すると、grep
出力は次のようになります。
< loop
< polo
< pool
grep -v
私はそれを逆検索と少し似ていると思います。ところがこの部分が理解できないのに^[11,12d9]
、何の役割をするのでしょうか?
答え1
grep -v "^[11,12d9]"
はい、ご存知のように、-v
これは逆方向の一致に使用され、指定されたものと一致しない行を返します。模様 ^[11,12d9]
。
これは、^[11,12d9]
文字を一致させ、文字が行の先頭(行アンカーの先頭)[...]
に表示されている場合は、その行を無視することです(逆の一致が使用されるため)。^
-v
1
,
したがって、デフォルトでは、、、または文字のいずれかで始まる行は2
無視されます(文字クラスの重複文字も無視されます)d
。9
ただし、文字列で始まる行を無視する11,12d9
必要がありますgrep -v '^11,12d9'
。
*質問とは関係ありませんが、文字クラス]
の^
文字使用を文書化するには、次のようにします。-
^
キャラクターの場合:どこにでも配置できますが、[]
最初のキャラクターの場合はそのクラスのキャラクターに作用します。文字
の場合:最初の文字でなければなりません。文字の場合:最後の文字でなければなりません。]
-