我有一个如下所示的文件:
fixedStep chrom=20 start=1 step=1000
0
10
20
100
0
fixedStep chrom=19 start=1 step=1000
0
0
50
330
450
0
我想为 chrom=
之后的数字添加前缀 chr
。因此,我不想使用 chrom=20
或 chrom=19
,而是想要 chrom=chr20
或 chrom=chr20
.所以该文件应如下所示:
fixedStep chrom=chr20 start=1 step=1000
0
10
20
100
0
fixedStep chrom=chr19 start=1 step=1000
0
0
50
330
450
0
我知道使用 sed 命令我能够做到这一点,但我不知道如何构造一个找到 的
正则表达式
chrom = 部分。我已经使用 sed 来修改简单的事情,例如在文件中每行的开头添加前缀;但我无法全神贯注于这个问题!
最佳答案
您可以使用此sed
命令:
sed 's/\(chrom=\)/\1chr/g' file
fixedStep chrom=chr20 start=1 step=1000
0
10
20
100
0
fixedStep chrom=chr19 start=1 step=1000
0
0
50
330
450
0
\(chrom=\)
搜索 chrom=
并将其捕获到组 #1 中,以用于替换模式 \1chr
。
或者更简单:
sed 's/chrom=/&chr/g' file
关于regex - 通过在特定位置添加前缀来编辑文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26510015/