0

alien.digitsの数字が含まれているすべてのファイル名をリストする必要がありますが、alien.htm、alien.1php、alien.1234.pj.123、 alien.123.12、alien.12.12p.234htm

私は次のように書いています:find home / jassi / -name"alien。[0-9]*"しかし、それは機能しておらず、すべてに一致しています。

そのための解決策はありますか?

4

4 に答える 4

2

あなたが欲しいのは

find home/jassi/ -regex ".*/alien\.[0-9]+"

-nameオプションを使用すると、正規表現ではなくグロブパターン指定できます。

findは、パス全体が正規表現と一致することを想定していることに注意してください。

于 2012-06-20T10:20:05.100 に答える
1

これを試してください:少なくとも1桁で終わり、数字以外のfind home/jassi/ -name "alien\.[0-9]+$" すべてのファイルと一致します。alien.文字は文字列の終わりを$意味します。

于 2012-06-20T09:24:22.737 に答える
0

それは私のために働きました:home / jassi / type -f-regex"。*/alien。[0-9]+"を見つけてください

ファイルかどうかを確認するためにタイプ-fを指定する必要がありました。指定しないと、同じ名前のディレクトリも表示されます。

ありがとうbmk。私はちょうど理解しました、そして同時にあなたはまったく同じことを答えました。素晴らしい!

于 2012-06-20T10:27:42.993 に答える
0

修飾子は、前の一致の*0以上を.意味し、任意の文字を意味します。これは、一致していることを意味しalienます。

代わりにこれを試してください:

alien\.[0-9]+$

修飾子は前の一致の+1つ以上を意味.し、はリテラル文字にエスケープされており$、末尾のは「文字列の終わり」を意味します。

^正規表現と完全に一致するファイルのみを確認する場合は、正規表現の先頭にを追加することもできます。^文字は「文字列の始まり」を意味するため、一致しますが、^alien\.[0-9]+$一致alien.1234しませんnot_an_alien.1234

于 2012-06-20T09:15:21.287 に答える