2

grep を使用して文字列全体を検索しようとしています。-w フラグは使い慣れていますが、ドットを区切り文字として参照するので苦労します。

たとえば、「a.txt」という名前のファイルと、あるディレクトリに a という名前のディレクトリがあると、次のようになります。

> ls | grep -w a
a
a.txt

私が見つけたいのは「a」だけで、それだけです。

どうやってやるの?

4

3 に答える 3

2

aライン上にシングルが必要な場合は、使用します

grep '^a$'

区切り文字として空白のみを使用する場合は、使用します

grep '\([[:space:]]\|^\)a\([[:space:]]\|$\)'

(つまり、空白または行頭、a、空白または行末)。

于 2013-08-17T09:09:59.500 に答える
1

より簡単なアプローチも次のようになります。

grep '^[[:space:]]*a[[:space:]]*$'

変数をより使いやすくするには、awk を使用します。入力パターンを正規表現として解釈しません。

awk -v v="$var" '{ sub(/^[[:space:]]*/, ""); sub(/[[:space:]]*$/, ""); }; $0 == v;'
于 2013-08-17T10:23:09.827 に答える