テキストファイルがあります。
deiauk 1611516 afsdf 765
minkra 18415151 asdsf 4152
linkra sfsfdsfs sdfss 4555
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
deiauk 1611516 afsdf ddfgfgd
luktol1 4545 4 9
luktol 1
正確に一致するものが欲しいですdeiauk
。私がこれを行うとき:
grep "deiauk" file.txt
私は次のような結果を得ます。
deiauk 1611516 afsdf 765
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
しかし、私にとってはこれだけが必要です:
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd
オプションがあることを知っていますが、-w
私の文字列は行全体を処理する必要があります。
答え1
次のいずれかを試してください。
grep -w "deiauk" textfile
grep "\<deiauk\>" textfile
答え2
GNUを使用してこれを試して、grep
次を使用して単語の境界を表示します\b
。
grep "\bdeiauk\b" file
出力:
徳1611516 afsdf 765
望むより:http://www.regular-expressions.info/wordboundaries.html
答え3
grep
(PCRE)をサポートしている場合は、-P
次のことができます。
$ grep -P '(^|\s)\Kdeiauk(?=\s|$)' file.txt
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd
答え4
私は-x
それが私に効果があることがわかりました。
$ grep -inx -d skip 'favicon.ico' *
test.txt:1:favicon.ico
クエリマニュアル
-x, --line-regexp
Select only those matches that exactly match the whole line. For a regular expression pattern, this is like
parenthesizing the pattern and then surrounding it with ^ and $.