awkを使って検索、置換、計算する方法は? [コピー]

awkを使って検索、置換、計算する方法は? [コピー]

0.2remフォルダにorが含まれているCSSファイルがいくつかあります0.5rem 0.6rem。これをどのように使用または達成できますか?0.1rem0.25rem, 0.3remawksedgawk

私は成功せず、次のコマンドを試しました。

find . -name "*.css" | xargs gawk -i inplace '{gsub(/([0-9\.]+)rem/, "(\\1 * 0.5)rem"); print $0}'

ベストアンサー1

わかりませんが、sed/gawkここに1つありますperl

$ echo '0.2rem or 0.5rem 0.6rem' | perl -pe 's/\d+(\.\d+)?(?=rem)/$&*0.5/ge'
0.1rem or 0.25rem 0.3rem
  • \d+(\.\d+)?オプションの小数部と数値の一致
    • (?=rem)後ろに数字があることを確認してください。rem
  • $&*0.5数値の乗算0.5-e修飾子を使用すると、置換部分に文字列の代わりにPerlコードを使用できます。


ファイルに適用されます。

find . -name "*.css" -exec perl -i -pe 's/\d+(\.\d+)?(?=rem)/$&*0.5/ge' {} +

また見なさい:検索結果を繰り返すのはなぜ悪い習慣ですか?

おすすめ記事