web-dev-qa-db-ja.com

Word BOZOに一致し、「123」または「456」で終わるディレクトリ内の特定のファイルのみを一覧表示します

BOZOという名前のファイルのファイル名のリストを取得する方法を見つけようとしていますが、123 OR 456のみで終わります。

ファイルは次のとおりです。

BOZO12389、
BOZOand3
BOZOand456
BOZOand5
BOZOhello123

したがって、コマンドは「BOZOhello123」と「BOZOand456」のみを表示する必要があります

私はそれを理解することはできません。私は考えられるすべての形式のLSとGREPを試しました。おもしろいことに、クラスで約10分間試してみましたが、誰も(インストラクターを含めて)それを取得できませんでした。

9
Geordie

私は次のことをしました、そしてそれは働きました

ls BOZO*456 BOZO*123
12
dave

シェルのグロブの使用:

ls BOZO*{123,456}
11
ninjalj

正規表現を使用してください。コマンドegrepは、正規表現を使用できるようになるため、役立つはずです。

BOZO456およびBOZO123の種類のファイルを検索しています

ピリオド_._はワイルドカードであり、_<anything>_の代わりに使用できます。 _*_を使用すると、0回以上繰り返すことができます。約123と456の丸括弧を配置することにより、ORをシミュレートします。

したがって、任意の文字を0回以上繰り返し、その後に123または456を続ける必要があります。

例:

egrep "BOZO.*(456|123)" data

助けと編集をしてくれたNathan Fellmanに感謝します。

2
digerati32

findコマンドを使用することもできます:

    find . \( -name "BOZO*123" -o -name "BOZO*456" \)
1
driquet

$ ll grep *BOZO*も機能するはずです!

0
Vikas Kumar

これはそれほど難しいことではありません。最も単純な方法は、ディレクトリをlsしてから、必要なものだけをgrepすることです。

$ ls *BOZO* | grep -e '123$' -e '456$'
0
Nathan Fellman