2017-02-25 3 views
0

に一致します。だけで正確なgrepするにあたって、私は試合の正確な発生のためのファイルをgrepししようとしていますが、私も長い偽の試合を取得

grep CAT1717O99 myfile.txt -F -w 

出力:

CAT1717O99 

CAT1717O99.5 

私は希望を最初のと一致する行だけが正確にに出力されます。 2行目を取り除く方法はありますか? ありがとうございます。 アルトゥーロ

これはファイル 'myfile.txtの' です:

CAT1717O99 

CAT1717O99.5 
+0

あなたは 'myfile.txt'の断片を表示できますか? – RomanPerekhrest

答えて

0

これはあなたのための作業を行います。

grep -Fx "CAT1717O99" textfile 

-Fを固定 がPerl互換正規表現PCRE)の電源を使用し、所定のパターンにマッチを検索正確

+0

ありがとうございますが、動作しません。それでも私は偽のマッチングラインを取得します。 – Arturo

+0

ありがとうございます。それがトリックでした。 – Arturo

+0

それが例外としてあなたのために働いた場合、親切なSOユーザーを助けるための答えを親切に受け入れてください。 –

1

を意味-x意味:

grep -Po "\bCAT1717O99(\s|$)" myfile.txt 

(\s|$) - 代替グループでは、空白文字が続くか、lの末尾に置かれた場合には部分文字列CAT1717O99と一致するようにしますINE

-Pオプション、一致した行の正規表現

-oオプション、版画だけマッチした部分に

0

することができますあなたは、明示的に特殊文字を無視するためにスペースを要求する必要があります。 grepのマニュアルから

grep -E '(^|)CAT1717O99(|$)' myFile.txt 

-w、--word-regexpに 選択単語全体にマッチする行のみ。テストでは、一致する部分文字列が行の先頭にあるか、または単語でない構成文字の前にある必要があります。同様に、それは行末になければなりません。単語構成文字は、英字、数字、アンダースコアです。

関連する問題