我挖掘了很多线索,但他们都没有解决这个问题。
我对addind string 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答案 0 :(得分:5)
这个怎么样?
$ 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
答案 1 :(得分:3)
Awk单行吗?
$ awk -v OFS=$'\t' '{ $2="chr" $2; print}' so.txt
re1 chr1 AGT
re2 chr1 AGT
re3 chr2 ACGTCA
re12 chr3 ACGTACT
答案 2 :(得分:1)
sed
单行:
sed 's/\<[0-9]\>/chr&/' < input > output