このコマンドの出力 Linux [閉じる]

このコマンドの出力 Linux [閉じる]

このコマンドの結果をご存知ですか?たくさん検索しましたが、役に立つ情報が見つかりませんでした。

find . -type f -exec grep -H PATH {} \;

事前にありがとう

ベストアンサー1

注文する

find . -type f -exec grep -H PATH {} \;

-type f現在のディレクトリ()または次のディレクトリ().ですべての一般的なファイルを探し、これらの各ファイルに対して実行grep -H PATH {}時に {} 現在のディレクトリに基づくファイルのフルパス名を変更します。

このオプションは非標準ですが、頻繁に実装され、一致する各行の前にその行を含むファイルのパス名を付けます-H。コマンドを次のように変更して、出力ファイルのパス名に常に一致する行を含めることができます(標準grepでは、コマンドラインに複数のファイルが提供されている場合にこれを行います)。grep PATH /dev/null {}grepgrep

で使用されるパターンgrepは文字列ですPATH

要約すると、このコマンドは、現在のディレクトリまたはwhere部分文字列を参照する次のディレクトリのすべての一般ファイルですべての行を検索して出力しますPATH。各行には、その行を含むファイルのパス名が前に付けられます。

私の個人のホームディレクトリでこのコマンドを実行したときに得られた出力の一部:

./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_NM:FILEPATH=/usr/bin/nm
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_SKIP_RPATH:BOOL=NO
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_STRIP:FILEPATH=/usr/bin/strip

grepこのコマンドは、ファイルごとに一度ではなく、一度にできるだけ多くのファイルを一括実行することで、より効率的にすることができます。

find . -type f -exec grep -F -e PATH /dev/null {} +

私はまた、文字列を次のように処理するためにここにいくつかのコマンドを自由にgrep追加しました。-FPATHひも正規表現ではないこの-eオプションは、次の引数がパターンであることを示すためにのみ使用されます(たとえば、後でパターンをダッシュ​​で始まるパターンに変更する場合に便利です)。

述語引数の末尾の から に変更すると、\;各パス名に対してユーティリティを実行する代わりに、見つかったパス名がバッチとして収集されます。+-exec

おすすめ記事