我挖掘了很多线程,但他们都没有解决这个问题。
我有兴趣将字符串 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 oneliner
非常感谢您的帮助,干杯,Irek
那这个呢?
$ 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