文字列の最後の数値を括弧で囲みます。

文字列の最後の数値を括弧で囲みます。

POP9POP10- 通常、同じ単語を含むテキストファイルがあります。同じファイルには `のような単語インスタンスもあります。POPnumberPOP(1)POP(2)POP(number)

すべてのインスタンスを変換し、既存のインスタンスを変更せずにそのままにする方法を探しています。どのような方法でこれを達成できますか?POPnumberPOP(number)POP(number)sed

答え1

sed 's/\(POP\)\([0123456789]\{1,\}\)/\1(\2)/g' < input.txt > output.txt

どこに\(...\)慣れていますか?捕獲\1で置換に使用できるように、一致はセットの単一文字と一致し、前の\2文字(この場合は数値)と一致します。[0123456789]\{1,\}

sedサポートしている場合-E拡大する正規表現の場合、以下を使用して短縮し、読みやすくすることができます。

sed -E 's/(POP)([0123456789]+)/\1(\2)/g' < input.txt > output.txt

関連情報