特殊文字「$」の後のすべての数字を「*」に置き換える方法

特殊文字「$」の後のすべての数字を「*」に置き換える方法

次のデータを含むファイルがあります。

ファイルのデータ:

axbnx $56 ghjas $78$
axbnx $5** ghjas $ 
axbnx $006 ghjas $$678 

次の形式の出力が必要です。

axbnx $** ghjas $**$
axbnx $*** ghjas $ 
axbnx $*** ghjas $$*** 

私のコード:[動作しません]

sed -E 's/$[[:digit:]]/*/g'

このエミュレータで作業してみてください。https://rextester.com/l/bash_online_compiler

ベストアンサー1

そしてperl

$ perl -pe 's/\$\K\d+/$&=~s|.|*|gr/ge' ip.txt
axbnx $** ghjas $**$
axbnx $*** ghjas $ 
axbnx $*** ghjas $$*** 
  • \$\K\d+文字の前にある数字と一致します$(で一致部分の一部になる\Kのを防ぎます)。$$&
  • $&=~s|.|*|gr一致する部分の各文字を次に置き換えます。*
  • e交換部品のPerlコードの使用を許可するフラグ

また、使用することができますperl -pe 's/\$\d+/$&=~tr|0-9|*|r/ge'

おすすめ記事