各行で最初の文字の置き換えをスキップするには? [コピー]

各行で最初の文字の置き換えをスキップするには? [コピー]

次の形式のファイルがあります。

Y15-SUB-B04-P17-BK_M02734_4_000000000-ANNUF_1_1111_24724_4878;size=1;
Y15-SUB-B05-P22-LM_M02734_4_000000000-ANNUF_1_1111_20624_14973;size=1;
Y15-SUB-B05-P22-LM_M02734_4_000000000-ANNUF_1_1103_11326_10379;size=1;

最初の項目を除いて、すべての下線(_)をコロン(:)に置き換えたいと思います。私は次の出力が欲しい:

Y15-SUB-B04-P17-BK_M02734:4:000000000-ANNUF:1:1111:24724:4878;size=1;
Y15-SUB-B05-P22-LM_M02734:4:000000000-ANNUF:1:1111:20624:14973;size=1;
Y15-SUB-B05-P22-LM_M02734:4:000000000-ANNUF:1:1103:11326:10379;size=1;

sed -i '' 's/_/:/g' old_fileこれを使用してALL(または)を置き換えることができ、sed 's/_/:/g' old_file > new_file数字を追加して2番目と4番目の範囲の項目のみを変更できることを知っています。

sed 's/_/:/2' old_file > new_file

しかし、最初の行を除く各行のすべての項目を置き換える方法は何ですか?

ベストアンサー1

GNUの使用sed(異なるバージョンでは異なる動作をする可能性があります。ありがとうございます。グレンジャックマン):

 sed -i'' 's/_/:/2g' file

これにより、各行の最初の項目をスキップするように_すべてが変更されます。:

おすすめ記事