「xyz.abc.001.xxx.0.820」などの文字列を含む大きなファイルがありますが、ファイル全体で「0,820,xyz.abc.001.xxx」に置き換えたいと思います。
例:
xyz.abc.001.xxx.0.820\ to 0,820,xyz.abc.001.xxx
xyz.abc.001.xxx.820.123\ to 820,123,xyz.abc.001.xxx
xyz.abc.001.xxx.1000.2000\ to 1000,2000,xyz.abc.001.xxx
xyz.abc.001.xxx.1.100\ to 1,100,xyz.abc.001.xxx
次のsedコマンドと正規表現を使用していますが、正しく置き換えられません
sed -E "s/(xyz.abc[0-9]\+\.xxx)\.([0-9]\+)\.([0-9]\+)\\/\2,\3,\1/g" file_name
これは可能ですか?
よろしくお願いします。
ベストアンサー1
試してみてください
sed -E "s/(xyz.abc.*xxx).([0-9]+)\.([0-9]+)./\2,\3,\1/"
sed -E "s/(xyz.abc.*xxx).([0-9]+)\.([0-9]+)\\\\/\2,\3,\1/"
どこ
- モードの選択は次のように行われます。
\( ... \)
- 末尾は(すべての文字)または(シェルからエスケープし、sedからエスケープ)として
\
キャプチャできます。.
\\\\
- 点を指定するために
.
またはを使用することに注意してください。\.