GNU/Linux >> Linux の 問題 >  >> Linux

完全なパスまたはファイル名で grep の結果を表示する方法

次の場所に 2 つのログ ファイルがあるとします:

  • C:/temp/my.log
  • C:/temp/alsoMy.log

Cd から C:に移動し、次を使用:

grep -r somethingtosearch temp/*.log

次のようなリストが表示されます:

temp/my.log:somethingtosearch
temp/alsoMy.log:somethingtosearch1
temp/alsoMy.log:somethingtosearch2

まったく同じ問題を探していたときにここに落ちました。他の人にも役立つかもしれません.

本当の解決策は次のとおりだと思います:

cat *.log | grep -H somethingtosearch

フルパスを見たい場合は cd をお勧めします 最上位ディレクトリ (Windows を使用している場合はドライブの) へ

cd C:\
grep -r somethingtosearch C:\Users\Ozzesh\temp

または Linux の場合:

cd /
grep -r somethingtosearch ~/temp

ファイル名のフィルタリング (*.log) に本当に抵抗し、かつ recursive が必要な場合 (すべてのファイルが同じディレクトリにあるわけではありません)、 find を組み合わせて と grep が最も柔軟な方法です:

cd /
find ~/temp -iname '*.log' -type f -exec grep somethingtosearch '{}' \;

Linux
  1. Grep一致しないファイルの表示を抑制する方法は?

  2. 名前にスペースが含まれるフォルダのパスを書き込む方法は??

  3. ターミナルでファイルまたはディレクトリのフルパスを表示するにはどうすればよいですか?

  1. auditd ログ ファイル /var/log/audit/audit.log のパスを変更する方法

  2. カラー出力をgrepする方法

  3. 特定のパターンで最新のログ ファイルを末尾に -f する方法

  1. ターミナルウィンドウからLinuxでファイルを作成するには?

  2. ファイル内で \n を grep する方法

  3. Linux でこの名前のファイルを削除する方法:-]???????q