a.2014-05-06、a.2014-05-07、a.2014-05-08など、巨大な(30000行)ファイルがたくさんあると想像してみてください。
以下を使用して1行の単語を見つけることができることを知っています。
grep "word" a.*
まず、単語を検索するために2番目のファイルを開く前に、各ファイルを開いて閉じると思いますか?これはうまくいきますか?そうでなければ、より効率的な方法はありますか?
2. どのファイルで単語が見つかるかを確認するには?例:
a.2014-05-06に以下がある場合:
a
bx
.
.
a.2014-05-07:
by
.
.
a.2014-05-08:
c
.
.
私たちは次のことを行います。
grep "b" a.*
出力は次のとおりです。
bx
by
私は次の出力が欲しい:
bx a.2014-05-06
by a.2014-05-07
ベストアンサー1
~からman grep
:
-H, --with-filename
Print the file name for each match. This is the default when there is
more than one file to search.
ファイル名を最初に印刷してから一致を印刷します。これは、例の結果に表示される内容ではありません。しかし、問題が発生しない場合は、迅速かつ簡単です。
これは複数の入力のデフォルト値なので、ワイルドカードと一緒に使用すると(例のように)、次の結果が得られます。
$ grep "b" a.*
a.2014-05-06:bx
a.2014-05-07:by
どのタイプのUnix / Linuxを使用しているかについては言及していませんが、この-H
オプションはPOSIX仕様にはありませんが、ほとんどの実装で使用できます。