19

「AAA」という単語でファイルをgrepしたいのですが、空白または改行で終わります。私はこれを次のように別々に書く方法を知っていますが、それらを組み合わせるのに問題があります(との両方VVV AAAを出力するという意味でAAA VVV)。

$echo -e "AAA VVV \nVVV AAA\nBBB" | grep "AAA$" 
>VVV AAA
$echo -e "AAA VVV \nVVV AAA\nBBB" | grep "AAA[[:space:]]" 
>AAA VVV 

を使ってみ[]ましたが、うまくいきませんでした。

4

4 に答える 4

22

AAA文字列内または行末のどこかにスペースが続く単語を探している場合は、

grep -P "AAA( |$)"
于 2012-11-04T16:00:40.430 に答える
12

-egrepのオプションを使用して、多くのパターンを選択できます。

grep -e "AAA$" -e "AAA[[:space:]]"

grep マン から:

-e PATTERN, --regexp=PATTERN
      Use  PATTERN  as  the  pattern.   This  can  be  used to specify
      multiple search patterns, or to protect a pattern beginning with
      a hyphen (-).  (-e is specified by POSIX.)
于 2012-11-04T20:46:48.567 に答える
2

"AAA\b"AAA の後に他の英数字以外の文字が続く場合にも一致する場合に使用します。grep の man ページによると\b、単語の端にある空の文字列に一致します。

$ echo -e "AAA VVV \nVVV AAA\nBBB" | grep "AAA\b"
AAA VVV
VVV AAA
于 2012-11-04T16:05:30.647 に答える