プロが教える店舗&オフィスのセキュリティ対策術

findstr "aa bb" fileA.txt fileB.txt

とすると、aa bbがそれぞれfileA.txt fileB.txtに適当に入ってるとき、結果は

fileA.txt:aa
fileB.txt:bb
fileB.txt:bb
fileA.txt:aa

などと、検索結果の各行の初めにファイル名が出てきてしまいます。
このファイル名を出さないようにすることって出来ませんか。この場合、

aa
bb
bb
aa

とだけ出てきたらいいのですが。
/Mというオプションはファイル名だけを出すもので、この逆、ファイル名を消す、というのが欲しいのですが。

findstr以外のコマンドでもいいです。

ここで使っているのはwindows用のGNU utilities for Win32です。

A 回答 (3件)

実はあります.



grep --help
のどこかにいますよ.
    • good
    • 1
この回答へのお礼

grep -h -E "aa|bb" fileA.txt fileB.txt

で出来ました。

お礼日時:2011/06/14 19:32

えぇっと....



GNU utilities が使えるなら grep で何とでもなるような....
    • good
    • 1
この回答へのお礼

お返事ありがとうございました。
grepでも調べてみました。 -E というオプションがあって、この場合は、

grep -E "aa|bb" fileA.txt fileB.txt

とするようですが、実際にやってみたら、この場合も出力には、

fileA.txt:aa
fileA.txt:bb
fileB.txt:aa
fileB.txt:bb

のように、頭にファイル名がついてきてしまいます。
この頭のファイル名を消すオプションってありますか。

お礼日時:2011/06/14 16:29

FINDSTR は GNU utilities ではなく,Windows標準コマンドですよね。



しかし,GNU utilities を導入済みなら TYPEコマンドではなく catコマンドが使えるのでありがたいです。次のコマンドなら質問者のニーズを満たしますか?

cat fileA.txt fileB.txt | findstr "aa bb"
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。
そうでしたね。勘違いしていました。findstrはwindowsコマンドでした。

なるほど、catを使うのですか。やってみましたが、ちゃんとできました。
ありがとうございました。

でも、findstrだけでは出来ないということなのでしょうかね。

一応、これで対処しますが、もっとスマートなひとつのコマンドで出来るものってないのでしょうかね。

お礼日時:2011/06/14 08:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!