1

ファイル内で正確に一致する文字列を検索しようとしています。「grep -w」で実行できることは知っていますが、何らかの理由でgrepでは実行しません。

すでにこれらを試してみましたが、うまくいきませんでした:

egrep '\< pattern \>' file
fgrep '\< pattern \>' file
egrep '^pattern$' file
fgrep '^pattern$' file

例:

「ABC100-10」という文字列を正確に含む行だけを表示したい

$ cat file
NULL1 VOID XX
NULL2 VOID XX
EMPTY VOID XX
ABC100-10 VOID XX
ABC100-102 VOID XX

これを試すと:

egrep ABC100-10 file

実際の出力:

ABC100-10 VOID XX
ABC100-102 VOID XX

期待される出力

ABC100-10 VOID XX

単語境界あり:

egrep '\<ABC100-10\>' file

出力なし。期待される出力:

ABC100-10 VOID XX

行の境界の開始/終了:

egrep '^ABC100-10$' file

出力なし。期待される出力:

ABC100-10 VOID XX

ところで、私は Solaris 8 を使用しています。

4

2 に答える 2

1

これでいいですか?

grep "\bABC100-10\b" file

Solaris で grep が異常に動作する場合は、perl を使用できます

perl -ne 'print if /\bABC100-10\b/' file

\b は単語境界を示します

于 2013-05-23T10:29:58.963 に答える