alien.digitsの数字が含まれているすべてのファイル名をリストする必要がありますが、alien.htm、alien.1php、alien.1234.pj.123、 alien.123.12、alien.12.12p.234htm
私は次のように書いています:find home / jassi / -name"alien。[0-9]*"しかし、それは機能しておらず、すべてに一致しています。
そのための解決策はありますか?
あなたが欲しいのは
find home/jassi/ -regex ".*/alien\.[0-9]+"
-name
オプションを使用すると、正規表現ではなくグロブパターンを指定できます。
findは、パス全体が正規表現と一致することを想定していることに注意してください。
これを試してください:少なくとも1桁で終わり、数字以外のfind home/jassi/ -name "alien\.[0-9]+$"
すべてのファイルと一致します。alien.
文字は文字列の終わりを$
意味します。
それは私のために働きました:home / jassi / type -f-regex"。*/alien。[0-9]+"を見つけてください
ファイルかどうかを確認するためにタイプ-fを指定する必要がありました。指定しないと、同じ名前のディレクトリも表示されます。
ありがとうbmk。私はちょうど理解しました、そして同時にあなたはまったく同じことを答えました。素晴らしい!
修飾子は、前の一致の*
0以上を.
意味し、任意の文字を意味します。これは、一致していることを意味しalien
ます。
代わりにこれを試してください:
alien\.[0-9]+$
修飾子は前の一致の+
1つ以上を意味.
し、はリテラル文字にエスケープされており$
、末尾のは「文字列の終わり」を意味します。
^
正規表現と完全に一致するファイルのみを確認する場合は、正規表現の先頭にを追加することもできます。^
文字は「文字列の始まり」を意味するため、一致しますが、^alien\.[0-9]+$
一致alien.1234
しませんnot_an_alien.1234
。