lect1.txt
、lect2.doc
およびというファイルがありますlect3.doc
。
.txt
私はファイルであり、ファイル名を含むファイルを取得したいと思いますlect
。
頑張った
find *.txt | grep lect*
何も返しません。
しかし、私がするとき
find *.txt | grep "lect*"
帰ってきたlect1.txt
。
これら2つの表現の違いは何ですか?
ベストアンサー1
grep
最初の引数(パターン)に対してコマンドラインに渡されたファイルの検索または stdin
ファイルが通過しない場合。
引用符がない場合、シェルはlect*
次のディレクトリに展開されますlect
。
grep lect1.txt lect2.doc lect3.doc
意味はlect1.txt
.doc
両方のファイルからテキストを検索する。ファイルのいずれかに対応するフレーズが含まれていない場合は.doc
何も返されません。より正確には、()の後に続くすべての文字をlect1.txt
見つけるので、なども探します。)lect1
.
txt
lect1-txt
lect1xtxt
"lect.*"
2番目の例では、シェルが拡張せずにそのまま渡されるように引用符を入れますgrep
。パターンを引数として渡すだけで、渡されたgrep
ファイル名stdin
からパターンを検索できます。 。