我有一个矩阵文件如下。第一列是名单。我想添加_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