私はまだシェルスクリプトの初心者ですが、頑張っています。以下は、タグを一致させ、それらに含まれるコンテンツを削除することにより、*.htm ドキュメントからすべての JS を削除することになっている、部分的に機能するシェル スクリプトです。例<script src="">
、<script></script>
および<script type="text/javascript">
find $1 -name "*.htm" > ./patterns
for p in $(cat ./patterns)
do
sed -e "s/<script.*[.>]//g" $p #> tmp.htm ; mv tmp.htm $p
done
このスクリプトの問題は、sed がテキスト入力を 1 行ずつ読み取るため、このスクリプトが改行で期待どおりに機能しないことです。ランニング:
<script>
//Foo
</script>
最初のスクリプトタグを削除しますが、不要な「foo」と終了タグを省略します。
正規表現で改行文字を一致させる方法はありますか? または、sed
適切でない場合、他に使用できるものはありますか?