我有兴趣在每行的列的开头添加一个字符串 chr
。
该文件是以制表符分隔的,大致如下:
re1 1 AGT
re2 1 AGT
re3 2 ACGTCA
re12 3 ACGTACT
我需要的是:
re1 chr1 AGT
re2 chr1 AGT
re3 chr2 ACGTCA
re12 chr3 ACGTACT
解决方案可以是一个简洁的Bash命令行代码。
这个怎么样?
$ awk '$2="chr"$2' file
re1 chr1 AGT
re2 chr1 AGT
re3 chr2 ACGTCA
re12 chr3 ACGTACT
使用$2="chr"$2
,我们将chr
添加到第二个字段中。然后我们不需要任何其他命令来获得所需的输出,因为awk的默认行为是print $0
。
为了确保输出字段分隔符(OFS)为制表符,您可以执行以下操作:
$ awk 'BEGIN{OFS="\t"}$2="chr"$2' file
re1 chr1 AGT
re2 chr1 AGT
re3 chr2 ACGTCA
re12 chr3 ACGTACT
Awk一行命令是什么?
$ awk -v OFS=$'\t' '{ $2="chr" $2; print}' so.txt
re1 chr1 AGT
re2 chr1 AGT
re3 chr2 ACGTCA
re12 chr3 ACGTACT
sed
一行命令:
sed 's/\<[0-9]\>/chr&/' < input > output