在列的开头的每一行中添加字符串

Ire*_*rek 3 string bash awk

我挖掘了许多线索,但他们都没有解决这个问题.

我感兴趣的是addind string chr到每一行的列的开头.文件是制表符分隔的,看起来像:

re1 1   AGT
re2 1   AGT
re3 2   ACGTCA
re12    3   ACGTACT
Run Code Online (Sandbox Code Playgroud)

我需要的是:

re1 chr1    AGT
re2 chr1    AGT
re3 chr2    ACGTCA
re12    chr3    ACGTACT
Run Code Online (Sandbox Code Playgroud)

可以在bash oneliner上

非常感谢任何帮助,欢呼,Irek

fed*_*qui 6

那这个呢?

$ awk '$2="chr"$2' file
re1 chr1 AGT
re2 chr1 AGT
re3 chr2 ACGTCA
re12 chr3 ACGTACT
Run Code Online (Sandbox Code Playgroud)

说明

随着$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
Run Code Online (Sandbox Code Playgroud)