0

'〜'や.swpなどのファイル名でfindを使用して結果を取得しています。そこで、次のことを行いましたが、これを行うためのより良い方法はありますか?'.*.js' -iname '*.js'パーツは「冗長」な感じがします。

$ find ./ '.*.js' -iname '*.js' -print0 | xargs -0 grep -n ".*loginError.*"
find: `.*.js': No such file or directory
./js/signin.js:252:                               foo.loginError();
./js/signin.js:339:foo.loginError = function() {
./js/signin.js:340:    foo.log("ui.loginError");
4

2 に答える 2

2

使ってみてください

find . -name \*.js -print0 | xargs -0 grep -n ".*loginError.*"

拡張子が「js」で、末尾が〜または.swpではないファイルのみが検索されます

編集:「0」-print0を追加しました(編集には6文字が必要なので、これを追加します;えーと!)

于 2011-02-28T18:18:06.947 に答える
1

xargsを使用せずにすべてを1つのコマンドで実行するには、次のように実行できます。

find . -name "*.js" -exec grep -n ".*loginError.*" /dev/null {} \;

/ dev / nullは、grepに複数のファイルを検索していると思わせるためのもので、ファイル名を正しく出力します。そうでない場合は、ファイルがどのファイルにあるかを通知せずに行番号を出力します。

于 2011-02-28T18:25:11.250 に答える