grepで正規表現を省略しようとしています。正確に6つのスペースとアルファベット文字が一致する必要があります。これは働きます:
grep "^\s\s\s\s\s\s[[:alpha:]]" <filename>
以下は行われません。
grep "^[[:space:]]{6}[[:alpha:]]" <filename>
私は何が間違っていましたか?
答え1
{6}
基本正規表現に影響を与えない拡張正規表現「バインディング」({6}
文字通り一致)。このgrep
ユーティリティはデフォルトでデフォルトの正規表現を使用します。
2つの解決策:
- 逆の場合は、デフォルトの
\{6\}
正規表現として書くことができます。 - を使用
grep -E
してを許可しますgrep
。
[[:space:]]
または、スペース(他の文字を除く、\s
GNUではgrep
スペース、垂直/水平タブ、フォームフィード、改行、およびキャリッジリターン)を一致させるには、リテラルスペースを使用します。例えば、
grep -E '^ {6}[[:alpha:]]'
関連:
答え2
Kusalanandaが言ったことに加えて、これはフラグegrep
を扱いたくない場合に機能します。-E