私はack、sed、grepを使用して特定の文字列のディレクトリ内のファイルを検索しようとしました。パスワードがプレーンテキストでリストされていることを確認するためにデータベースファイルを調べています。これまで、次のコマンドを使用できました: grep -Ri "search_string" /path_to_Folder
ただし、これは対応する文字列を含むファイルのみを出力します。さらに一歩進んで、文字列の周りの行を印刷して各ファイルを検索する必要がないようにしたいと思います。
これが意味があることを願っています。とても感謝しています。
答え1
私が正しく理解したなら、
文字列の周りの行を印刷します。
-C
次のようにgrepの(コンテキスト)オプションを使用できます。
grep -aRi -C 1 "search_string" /path_to_Folder
各一致に対して、3行(一致前行、一致行、一致後行)を印刷します。
データベースファイルはバイナリなので、ファイルをテキストとして扱うには、grepの-aフラグも必要です。
実行例:
$ grep -aRi jeff *
a/b/c/i:jeff
a/b/i:jeff
a/i:jeff
i:jeff
そして
$ grep -aRi -C1 jeff *
a/b/c/i-hi
a/b/c/i:jeff
a/b/c/i-bye
--
a/b/i-hi
a/b/i:jeff
a/b/i-bye
--
a/i-hi
a/i:jeff
a/i-bye
--
i-hi
i:jeff
i-bye