6

abc.txt という名前のファイルがあるとします。ファイルには 2 行 (通常はそれ以上) が含まれます。

word  -c           (09:35:20)
word     -c        (09:38:49)

このコマンドを実行する$ grep "word -c" abc.txtと、1 と -c の間のスペースの数が 2 行目と一致しないため、1 行目のみが取得されます。この問題を解決する方法はありますか?

grep'word1|word2' /path/to/fileword と -c の間のスペースが異なるため、使用できません。

4

4 に答える 4

9

+先行する文字の少なくとも 1 つと一致する正規表現文字を使用します。

grep -E "word +-c" abc.txt

この正規表現は、「'word' に一致し、その後に 1 つ以上のスペースが続き、その後に '-c' が続きます」と読みます。

于 2013-07-25T15:13:45.510 に答える
1

egrep を正規表現で使用できます

egrep "word\s+-c" abc.txt

また

egrep "word +-c" abc.txt
于 2020-07-17T10:30:54.673 に答える
0

grep 'word \+-c' abc.txt

二重引用符ではなく一重引用符を使用してください。「+」は「前の式の 1 つまたは複数を意味するため、任意の数のスペース (ゼロを除く) を見つけることができます。

ここに参照があります:http://www.gnu.org/software/findutils/manual/html_node/find_html/grep-regular-expression-syntax.html

于 2013-07-25T15:13:10.413 に答える