こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

grepの使い方(もしくは~)

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

投稿日時 - 2005-12-01 15:04:11

QNo.1813033

困ってます

質問者が選んだベストアンサー

普通の grep では出来ないので、egrep を使ってください。拡張子 .aaa と .bbb なら

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

になります。

投稿日時 - 2005-12-01 20:32:37

お礼

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

投稿日時 - 2005-12-02 10:34:51

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

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

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

投稿日時 - 2005-12-01 20:11:49

お礼

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

投稿日時 - 2005-12-02 10:35:21

ANo.2

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

投稿日時 - 2005-12-01 15:51:59

補足

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

投稿日時 - 2005-12-01 17:33:44

ANo.1

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

投稿日時 - 2005-12-01 15:43:30

補足

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

投稿日時 - 2005-12-01 17:36:07

あなたにオススメの質問