ファイル名にサブストリング「s1r」、「s2r」、「s3r」、または「s19r」を含むファイルを見つけたいです。
すぐに到着します!
間違った試み:
ls *s[123][9?]r*
上記は、部分文字列を含むファイルのみを提供します。
s19r
しかし、
ls *s[1-3]|[19]r*
返品
-bash: [19]r*: コマンドが見つかりません。
ls: *s[1-3]: 対応するファイルまたはディレクトリはありません。
つまり、or |演算子を認識しません。これはパイプにも使用されるので意味があります。
「s1r」、「s2r」、「s3r」、または「s19r」を含むファイルを取得するにはどうすればよいですか?
ベストアンサー1
使用ls *s1r* *s2r* *s3r* *s19r*
。
存在しないファイルが気になる場合は、nullglob オプションを設定できます。
nullglob
If set, bash allows patterns which match no files (see
Pathname Expansion above) to expand to a null string,
rather than themselves.
シェルがbashではない場合は、同様の方法があります。マニュアルページを見てください。