我有一个这样的文件:

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

我想给chr后面的数字加一个前缀chrom=。因此,我想要的不是chrom=20chrom=19,而是chrom=chr20chrom=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命令我可以做到这一点,但我不知道如何构造一个找到regex部分的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/

10-10 02:03