首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >请避免替换以@开头的行

请避免替换以@开头的行
EN

Stack Overflow用户
提问于 2019-04-10 17:23:05
回答 3查看 34关注 0票数 1

我使用了sed 's/^/LP1-/',但此命令还更改了以@开头的行。

代码语言:javascript
复制
@SQ SN:NbV1Ch16     LN:148804966
@SQ SN:NbV1Ch17     LN:145611047
@SQ SN:NbV1Ch18     LN:144482707
@SQ SN:NbV1Ch19     LN:137831541
@RG ID:OZBenth8_.fastp.fq.gz        SM:OZBenth8_.fastp.fq.gz        LB:OZBenth8_.fastp.fq.gz        PL:ILLUMINA
@PG ID:bwa  PN:bwa  VN:0.7.17-r1188 CL:bwa mem OZBenth8_R1.fastp.fq.gz 
HWI-ST945_0069:8:1101:1475:2032#NNNNNN      99      NbV1Ch07        110148523       60      100M    =       110148853       430     CCAAAAAGCACAGCTGGACCAAACCGGCCCAAATATTGATAGCCGTCAGACTACGCCATGAGCGGAGTCCCCCAAGTTCGTTTGATAGAAAATTCAGGAC
    CCCFFFFFHHHHHJJJJJJJJJJJHJJJJJJJJJJJJJIJJJIIJJJJJJJJHHHFFFDECEEDDDDDDDDDDDDACDEDDDDDDDEDDDDDDDDDDDDD    NM:i:0  MD:Z:100        MC:Z:100M       AS:i:100        XS:i:68 RG:Z:OZBenth8_.fastp.fq.gz
HWI-ST945_0069:8:1101:1475:2032#NNNNNN      147     NbV1Ch07        110148853       60      100M    =       110148523       -430    AATCTTCTTCCAATTCCATGGCGGCCCAAAGTCACACGGCCTCTTCACTTTCTGAGGTTGCAAGAAGAACCACACAAAAAATATTGGGGGCTAAAATCCC
    DDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEC=FFFHHHJJJJJJJIJHGIJJIBJJJIIJJJIJJJJJFIHJHJJJJJJJJJJJJJHHHHHFFFFFCCC    NM:i:1  MD:Z:54T45      MC:Z:100M       AS:i:95 XS:i:65 RG:Z:OZBenth8_.fastp.fq.gz
HWI-ST945_0069:8:1101:1446:2101#NNNNNN      83      NbV1Ch16        133875416       44      100M    =       133874965       -551    ATATGTCTTATTCTTCTTCGACGAGTTTCAATCTAAAATTCAGTCAAAACCAAGTCTAATCTTCACCAAAACCCCTCAAAATTGAGATATAAACTCCTAA
    DDDDDD

如何排除要更改的以@开头的行?

先谢谢你,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-10 17:24:30

您可以使用

代码语言:javascript
复制
sed 's/^[^@]/LP1-&/'

在这里,^[^@]^匹配行位置的开头,[^@]匹配除@之外的任何字符。LP-&将匹配替换为LP1-和与[^@]匹配的字符。

请参见online sed demo

要同时修改空行,请使用$替换,即行尾锚点:

代码语言:javascript
复制
sed -E 's/^([^@]|$)/LP1-&/'

或使用GNU sed的BRE POSIX:

代码语言:javascript
复制
sed 's/^\([^@]\|$\)/LP1-&/'
票数 2
EN

Stack Overflow用户

发布于 2019-04-10 19:18:50

您可以在s命令前加上一个否定的地址:

代码语言:javascript
复制
sed -s '/^@/!s/^/LP1-/'
票数 1
EN

Stack Overflow用户

发布于 2019-04-13 08:31:48

通过gnu sed,

代码语言:javascript
复制
sed 's/^([^@])/\1LP1-/'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55609068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档