私はack、sed、grepを使用してディレクトリ内のファイルを検索し、特定の文字列を見つけることを試みています。データベースファイルを調べて、パスワードがクリアテキストで表示されているかどうかを確認しています。これまでのところ、私はこのコマンドを使用することができました:grep -Ri "search_string"/path_to_Folder
ただし、これは文字列を含むファイルのみを出力します。さらに一歩進んで、文字列の周りの行を出力したいので、各ファイルに入って検索する必要はありません。
私はそれが理にかなっていると思います。どうもありがとうございます。
私があなたを正しく理解しているなら、
文字列の周りの行を出力します
次のように、grepの-C
(コンテキスト)オプションを使用できます。
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