findとgrepを効果的に使用する方法

findとgrepを効果的に使用する方法

現在のディレクトリで特定の文字列を含むファイルを見つけるには。コマンドを使用してくださいfind . -type f -print0 | xargs -0 grep -ial <word>。ただし、これはファイルパスのみを表示します。ファイルパス、行番号、n個のヘッダー行と末尾行(パラメータによって異なります)と一致する行、次の結果の前に改行を印刷する形式で結果を印刷するにはどうすればよいですか。 Linux検索およびテキスト操作ツールの電力使用量とスキルを学ぶための最高のリソースは何ですか?

答え1

grep -iarn -C3 word .

これにより、現在のディレクトリfind . -type f -print0とすべてのサブディレクトリ(コマンドと同じ)を検索し、「単語」に一致するファイルの行をコンテキストの前後の3行で表示し、各行を表示するファイル名と行番号も表示します。 。

一致する項目の間に空白行があるのではなく、grepすぐ上に行ペアがあります--。出力を他のプログラムに提供するために空行が本当に必要な場合は、次のバージョンを使用できます。

grep -iarn -C3 word . | uniq | sed -e 's/^--$//'

PowerTrickを学ぶ方法についての質問のために、Unixmanページは非常に面倒な読み方ですが、manいくつかの一般的なツールについて学ぶためにページを閲覧することは非常に教育的です。また、LinuxやUNIXで多くのテキスト操作をしている場合は、Perlを学ぶことを特にお勧めします。

関連情報