さまざまなバージョンのdebディレクトリのリストがあります。私の要件は、一致するバージョンのパッケージを見つけることです。
私が今まで試したことは次のとおりです。
ls debs/* | grep 1.1.16 | egrep -e 'Package1|Package2|package3'
上記のコマンドは、Package1のo / pのみを提供します。
みんな試してみましたオプションここから。しかし、それらのどれも助けませんでした。
ベストアンサー1
まず、解析しないことに関する一般的な警告ls
。つまり、ファイル名が適切に指定されたと仮定すると、次のようにできます。
ls debs/*1.1.16* | grep -E 'Package1|Package2|package3'
ここで唯一の違いは、最初のgrepを使用しなかったことです。これはglobパターンを直接渡すことができるので不要ですls
。その後、egrep
廃止されたものを使用しましたが、grep -E
同じです。
ただし、これは基本的にコマンドと同じです。それでも機能しない場合は、一致するファイルがありません。
$ ls debs/
1.1.16.Package3 Package1.1.1.160 Package1.1.2.16 Package2.1.1.16
$ ls debs/*1.1.16* | grep -E 'Package1|Package2|package3'
debs/Package1.1.1.160
debs/Package2.1.1.16
予想通り、2 つの一致するファイルが表示されます。これがコマンドが印刷する内容です。
$ ls debs/* | grep 1.1.16 | egrep -e 'Package1|Package2|package3'
debs/Package1.1.1.160
debs/Package2.1.1.16
スキーマpackage3
は小文字(p
代わりにP
)なので、grep
ファイルは表示されません。1.1.16.Package3