書式の変更とともに列の値に数値を追加し、3番目の列に印刷する方法

書式の変更とともに列の値に数値を追加し、3番目の列に印刷する方法

ヘッダーがある次の2つの列があります。

CHR BP
1   78901

数字の最初の列(chr)に文字を追加する必要があります。また、次のように、2番目の列値(x〜x + 1)に小数を追加して3番目の列を作成する必要があります。

CHR BP new-column 
chr1  78901  78902

助けてくれてありがとう

答え1

奇妙なソリューション

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

関連情報