
次のマトリックスファイルがあります。最初の列はリストです。_i1
各名前の末尾に追加したいです。
A1A A1B A1C A1D A1E
TR6764_c0_g2 0.00 0.02 0.00 0.00 0.00
TR25644_c0_g1 0.00 0.00 0.00 0.00 0.00
TR4897_c0_g1 58.50 177.26 130.35 8.52 102.66
TR900_c0_g2 0.00 0.00 0.00 0.00 0.00
必要な結果は次のとおりです。
A1A A1B A1C A1D A1E
TR6764_c0_g2_i1 0.00 0.02 0.00 0.00 0.00
TR25644_c0_g1_i1 0.00 0.00 0.00 0.00 0.00
TR4897_c0_g1_i1 58.50 177.26 130.35 8.52 102.66
TR900_c0_g2_i1 0.00 0.00 0.00 0.00 0.00
どうすればいいですか?
答え1
私は以下を使用しますawk
:
$ awk 'NR>1{$1=$1"_i1"}1;' test.txt
A1A A1B A1C A1D A1E
TR6764_c0_g2_i1 0.00 0.02 0.00 0.00 0.00
TR25644_c0_g1_i1 0.00 0.00 0.00 0.00 0.00
TR4897_c0_g1_i1 58.50 177.26 130.35 8.52 102.66
TR900_c0_g2_i1 0.00 0.00 0.00 0.00 0.00
または、スペースを残す必要がある場合はPerlを使用してください。
$ perl -pe 's/\s/_i1$&/ if $.>1' test.txt
A1A A1B A1C A1D A1E
TR6764_c0_g2_i1 0.00 0.02 0.00 0.00 0.00
TR25644_c0_g1_i1 0.00 0.00 0.00 0.00 0.00
TR4897_c0_g1_i1 58.50 177.26 130.35 8.52 102.66
TR900_c0_g2_i1 0.00 0.00 0.00 0.00 0.00
答え2
私は最初のスペースと一致すると思います。
sed 's/\s/_i1\t/' test.txt