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

再帰的にある文字を検索したい。
この時に、対象としているファイル名は最初から想定をしていないので
*.htmlを指定すると、no such file or directoryのエラーが出る。

下記のコマンドでエラーが出る。
grtep -i 'line-height' -r *.html

修正個所を指摘願います。

A 回答 (4件)

grep の -r オプションは指定したファイル名がディレクトリであった場合に効力を発揮します。



(補足:"no such file or directory" のエラーが出ていることから、カレントディレクトリに *.html に該当するファイルは存在していない→ grep のエラーではなく shell のエラー)

> grtep -i 'line-height' -r *.html
(grtep は grep の間違いですね)
この場合カレントワーキングディレクトリ (=現在のディレクトリ)に *.html に該当するファイルが存在している必要があります。 なおこの場合 *.html に該当する名前がディレクトリでない場合には、再帰的に検索されることはありません。

このディレクトリにあるディレクトリ以下を再帰的に検索したいのであれば

grep -i line-height --include=*.html -r . ← 最後に . (ピリオド)

で検索できます。 
この方法で、. (ピリオド)=カレントディレクトリに存在するディレクトリを再帰的に検索できます。
(カレントディレクトリに存在する *.html に該当するファイルは)
    • good
    • 0
この回答へのお礼

有難う御座います。
おっしゃる通りです。

どうもその様です。
以前の環境では、その様な事をしなくても大丈夫でしたが今の環境では
最後のドットが必要です。

有難う御座いました。

お礼日時:2016/01/25 20:44

「対象としているファイル名は最初から想定をしていないので」ってどういうことだ?



「そういう名前のファイルが存在しない」ということだとすれば
ワイルドカードをいつ誰が展開するのか
という問題だ.
    • good
    • 0

grep は有名なので、さまざまな環境でさまざまな実装があり、一概に同じではありません。


自分の環境で使える grep を調べる場合、以下のいずれかを打ちましょう。
man grep
help grep
grep -h
grep --help
    • good
    • 1

たいていは


grep -r ある文字 --include "*.html"

include が使えない環境ならば
grep -r ある文字 | grep -E "^\S\.html:"
    • good
    • 0
この回答へのお礼

有難う御座います。
日頃、使う機会はあまりありませんが。以前使った記憶では、grep
line-height -r *.htmlでも動いた記憶が有ったのですが。

それとも私が使っていたのが標準と違っていたのでしょうか。
確か、その時のgrepはborland c compilerに付属していたgrepを使っ
たと記憶しているのですが。

これと言うのは標準のgrepとは違うのでしょうか。私が今使っている環
境はwindows7でmingwのgrepを使っています。

mingwのgrepでは、直にgrep line-height -r *.htmlでは動かないので
しょうか。

宜しく、お願いします。

お礼日時:2016/01/25 11:47

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