ファイル名を表示するには、「less」を使用してください。

ファイル名を表示するには、「less」を使用してください。

これは、いくつかの設定ファイルで特定の変数を見つけるときに非常に便利です。

less * | grep some_var

some_varしたがって、すべての設定ファイルを手動で表示することなく値が返されます。いいね!しかし、その価値を知りたいだけでなく、変更したい場合はsome_varどうすればいいですか?どのファイルにありますか? varとそのファイルが見つかったファイルを表示するlessコマンド(または何でも)を取得するにはどうすればよいですか?grep

マニュアルページを検索しましたが、適切なオプションが見つかりません...

答え1

なぜless何かをパイプで接続するのですか?これはに変わりますcat

grep some_var * | less

フォームの出力を取得します。

filename:this line contains some_var somewhere

-nオプションを:に渡すと、行grep番号も取得されます。

filename:42:this line contains some_var somewhere

多くのエディタにはファイル検索機能が組み込まれており、検索結果はその場所でそのファイルを開くことができる行を選択できるウィンドウに表示されます。 Emacsで以下を実行してください。M-x grepまたはその変形の一つです。 Vimで以下を実行してください。:grepまたはその変形の一つです。

答え2

less実際には、目的の操作を実行するのではなく、ページ付きの形式で長いテキストファイルを表示することです。

grepファイルまたはファイルのリストをコマンドライン引数として渡すことができるので、簡単に次のことができます。

grep -H some_var *

-Hこのオプションは結果の前に名前を付けるため、次の出力が提供されます。

filename: some_var blah blah

lessスクロールできるようにパイプを使用したい場合は、そうすることができます。

grep -H some_var * | less

多数のファイルを収集するもう1つの提案はackDebianシステムack-grepにあります。バイナリファイルを無視してソースツリーをかなり高速に検索するように設計されており、同様の検索を実行するにはより少ないキーストロークが必要です。

関連情報