grep
a
文字を検索するときの動作は異なります。検索基準に文字が含まれている場合、a
他の文字は検索されません。しかし、他のキャラクターについても同様です。なぜ? !
コマンド:grep [aeiou] file1
またはgrep [eioau] file1
またはの場合、grep [a,e,i,o,u] file1
次の出力が表示されます。
Name : file1
a
注1:出力では、文字「a」が検索文字で強調表示されます(スクリーンショット付き)。
コマンド:grep [eiou] file1
または の場合、grep [e,i,o,u] file1
次の出力が表示されます。
this is test file.
Name : file1
ノート2:文字「e」と「i」は出力で検索文字で強調表示されます(スクリーンショット付き)。
ファイル1例:
this is test file.
Name : file1
a
答え1
a
現在のディレクトリに名前がファイルです。に渡されたREを参照していないgrep
ため、次のことが発生します。
与えられた
grep [aeiou] file1
シェルは[aeiou]
これを確認し、有効な(glob)パターンなので、単一の文字ファイルである、、、、、とa
一致しようとします。成功すると、引数を一致するファイルに置き換えて、結果全体をコマンドとして実行します。e
i
o
u
a
grep a file1
これにより、表示される出力が提供されます。シェルがパターンと一致しない場合は、変更されないままであることを指摘する必要があります。これは[eiou]
明らかな[aeiou]
「失敗」があるところでも成功を可能にします。
解決策は、次のように、ファイルではなくパラメータを一重引用符で囲むことです。
grep '[aeiou]' file1