【发布时间】:2017-10-24 16:36:18
【问题描述】:
我有一个文件,例如
head testSed.fastq
@M01551:51:000000000-BCB7H:1:1101:15800:1330 1:N:0:NGTCACTN+TATCCTCTCTTGAAGA
NGTCACTN
+
#>AAAAF#
@M01551:51:000000000-BCB7H:1:1101:15605:1331 1:N:0:NATCAGCN+TAGATCGCCAAGTTAA
NATCAGCN
+
#>>AA?C#
@M01551:51:000000000-BCB7H:1:1101:15557:1332 1:N:0:NCAGCAGN+TATCTTCTATAAATAT
NCAGCAGN
我正在尝试使用正则表达式将最后一个冒号后面的字符串替换为0(在此示例中为第 1、5、9 行 - 但全局)。
我使用 egrep egrep '[ATGCN]{8}\+[ATGCN]{16}$' testSed.fastq 检查了我的正则表达式,它返回了我期望的所有行。
但是,当我尝试使用sed -i 's/[ATGCN]{8}\+[ATGCN]{16}$/0/g' testSed.fastq 时,原始文件没有改变,也没有发生替换。
我该如何解决这个问题?我的正则表达式不够具体吗?
【问题讨论】:
-
你需要转义
{}或者使用-E/-r -
你能详细说明一下吗?
-
@skurp,用户 123 建议
sed -E -i ...启用 egrep 样式的扩展正则表达式。