特定の2つの文字列間のテキストを置換する

特定の2つの文字列間のテキストを置換する

非推奨の CSS 値「hspace」を持つファイルが多数あり、これを他の CSS スタイル値に変更したいと考えています。次に例を示します。

hspace='5'

そして私たちは次のように変化したいと考えています:

style="margin: 0 5px;"

各ファイルには内部に異なる値があり、一方が他方にhspaceなる などです。hspace='5'hspace='2'hspace='7'

私が望んでいるのは、特定のディレクトリ内のすべてのファイルを見つけることです:

hspace='ANY NUMBER'

次のように置き換えます:

style="margin: 0 5px;"

これを bash centos os で実行するための提案はありますか?

答え1

置換には次のコマンドを使用できます ( sedCentOS にある GNU を想定)。

sed -i "s/hspace='\([0-9]*\)'/style=\"margin: 0 \1px;\"/g" filename.html

すべての .html ファイルで置き換えるには:

find . -type f -name '*.html' -exec sed -i "s/hspace='\([0-9]*\)'/style=\"margin: 0 \1px;\"/g" {} +

関連情報