以下のコードではエラーが発生しますが、理由がわかりません。
[name@unix ~]$cat test123
123
456
789
1011
1213
[name@unix ~]$egrep ^[0-9]{1,3}$ test123
egrep: ^[0-9]3$: No such file or directory
[name@unix ~]$egrep ^[0-9]{3}$ test123
123
456
789
[name@unix ~]$
$ man egrepを実行すると、次のようになります。
{n}は前のエントリと正確にn回一致します。 {n、}は前のエントリとn回以上一致します。 {n、m}は前のエントリと最小n回一致しますが、m回以下です。
答え1
{1,3}
あなたのシェルは次のように解釈されます支柱の拡張、結果grep
として
grep ^[0-9]1$ ^[0-9]3$ test123
したがって、^[0-9]3$
追加のファイル名パラメータが必要です。シェルがこれらの拡張を実行しないようにするには、常に正規表現を引用する必要があります。
egrep '^[0-9]{1,3}$' test123