検索コマンドを使用

検索コマンドを使用

私は多くのディレクトリを持っています。このディレクトリには、紹介書とzip作業ファイルが含まれています。作業フォルダを調べる価値があるかどうかを判断できるように、迅速で簡単なクエリを実行してすべての紹介書を開きます。

find . | grep cover\.pdf | xargs open    #OS X has open linked to "open" the file

これはうまくいきません。私も成功しなかったので、print0さまざまなバリエーションを試しましたxargs -0。これを行う正しい方法は何ですか?

ベストアンサー1

まず、Mac-OSXコンピュータで実際に使用されているバージョンを確認してくださいfindxargsおそらくBSD / GNUの動作/オプションを期待し、GNU / BSDバージョンを使用することもできます。

分からない開いている複数のパラメータをサポートします。次のように呼び出されない場合xargs:

xargs -n 1 open

(これはxargsが各引数に対して追加のオープンプロセスを実行することを意味します)

ファイル名/パスにスペースが含まれていないfind | xargs-print0/-0失敗すると予想されます。

ああ、次のようなものを使うと

find -print0 | grep something | xargs -0 foo

そしてgrepすべてのキャラクターに混乱を経験しました\0

GNUはgrep(少なくとも)この-zオプションを知っています。したがって、機能する必要があるのは次のとおりです。

find -print0 | grep -z something | xargs -0 foo

grepどのバージョンを使用しているか確認してください。

grep --version

または(0文字)サポートgrepについては、マニュアルページを確認してください。\0

おすすめ記事