linux 中sed命令中的列的精确替换

 

001、将ab替换为QQ

(base) [b20223040323@admin2 test2]$ ls
a.txt
(base) [b20223040323@admin2 test2]$ cat a.txt     ## 测试数据
snp1    ab      1072    0
snp4    abde    392     0
snp5    ab      401     0
snp6    eabx    1223    0
snp7    cxab    1260    0
(base) [b20223040323@admin2 test2]$ sed 's/ab/QQ/g' a.txt   ## 所有匹配的ab均被替换为QQ
snp1    QQ      1072    0
snp4    QQde    392     0
snp5    QQ      401     0
snp6    eQQx    1223    0
snp7    cxQQ    1260    0

 

 

02、只将第二列为单个的ab替换为QQ

(base) [b20223040323@admin2 test2]$ ls
a.txt
(base) [b20223040323@admin2 test2]$ cat a.txt
snp1    ab      1072    0
snp4    abde    392     0
snp5    ab      401     0
snp6    eabx    1223    0
snp7    cxab    1260    0
(base) [b20223040323@admin2 test2]$ sed 's/\sab\s/\tQQ\t/g' a.txt  ## 对第二列ab的精确替换
snp1    QQ      1072    0
snp4    abde    392     0
snp5    QQ      401     0
snp6    eabx    1223    0
snp7    cxab    1260    0

 

posted @ 2023-04-05 11:38  小鲨鱼2018  阅读(357)  评论(0编辑  收藏  举报