重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

恐れ入ります。
grepで検索してみたのですが、よくわかりませんでした。
aaa もしくは bbb を含む
という検索はどのように書いたらいいのでしょうか

A 回答 (4件)

普通の grep では出来ないので、egrep を使ってください。

拡張子 .aaa と .bbb なら

find . -type f -print | egrep '\.aaa$|\.bbb$'

になります。
    • good
    • 0
この回答へのお礼

ばっちりでした!!!
ありがとうございます!!

お礼日時:2005/12/02 10:34

Unixのコマンドで分からないことがあれば,まずmanを引くようにしましょう.大体全部かいてますよ.



私はcygwinのgrepのmanを見てみたのですが,それによると,
cygwinのgrepはデフォルトで"basic regular expression(基本正規表現?)"とやらを使います.
で,正規表現の部分を読むと,基本正規表現では「?,+,{,|,(,)」のメタキャラクタはその効果を失うので,前にバックスラッシュをつけて使え,と書いてありました.
そこで, find . | "\.h\|\.o" とやると,拡張子が「.h」または「.o」のファイルのみを出力させることができました.
Solarisは使ったことがないので分かりませんが,おそらく同様のことが書いてあるのでは.
また,ご希望の「何ファイルあるか?」というのも,grepにオプションをつけることで出力させることができます.その辺りも含めてmanをよく読んでみてはいいのではないでしょうか.
    • good
    • 1
この回答へのお礼

なかなか難しいですね。
ありがとうございました

お礼日時:2005/12/02 10:35

grep 'aaa|bbb' file


※「grep 正規表現」でネット検索してみましょう。

この回答への補足

なぜかだめでした。
もう少し詳しく言うと、
find . |grep
として、2種類の拡張子のものが何個あるか数えたいです。
教えてもらった方法を使ったら、どちらも引っかからなくなってしまいました・・・

補足日時:2005/12/01 17:33
    • good
    • 0

fgrepを使ってよければ


例えば、aaaとbbbを各1行づつに記入してfooというファイル名にします。
”コマンド” > fgrep -f foo
とやられてみてはいかがでしょうか ?
詳細は、man fgrepでチェックしてみて下さい。

この回答への補足

すいません。
ファイルを作る、ということはしたくないのです。

補足日時:2005/12/01 17:36
    • good
    • 0

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