如何向列值添加数字以及格式更改并将其打印在第三列中

如何向列值添加数字以及格式更改并将其打印在第三列中

我有这两列带标题:

CHR BP
1   78901

我需要向第一列数字(chr)添加一个字符。我还需要创建第三列,其中一个分数以这种方式添加到第二列值(x 到 x+1):

CHR BP new-column 
chr1  78901  78902

感谢你的帮助

答案1

Awk 解决方案

echo -e 'CHR BP\n1   78901' | awk -v FIRST_COL_PREFIX="chr" -v THIRD_COL_NAME="new-colum" 'NR == 1 {print $0, THIRD_COL_NAME; next} {print FIRST_COL_PREFIX $1, $2, $2 + 1}'

输出:

CHR BP new-colum
chr1 78901 78902

答案2

使用awk

$ awk '{$(NF+1)=NR>1?$2+1:"new-column";if (NR>1) $1= "chr"$1}1' input_file
CHR BP new-column
chr1 78901 78902

相关内容