美文网首页
三剑客 | sed

三剑客 | sed

作者: shwzhao | 来源:发表于2021-08-30 12:27 被阅读0次

先举个例子

把蛋白质序列中的 B 转换为 X,而蛋白质 id 中的字母 B 不受影响

-i: 选项,表示直接修改原文件;
/^>/!: 位置参数,/^>/表示以>开头的行,!表示取反;
s/B/X/g: 子命令,把所有的B替换为X。

sed 就是如此,一行一行读取,对特定的位置进行操作。


1. 选项

-n: 取消默认输出
-i: 直接修改原文件
-e: 允许执行多个子命令

2. 位置参数

可以按行号 和 / 或 正则表达式匹配,正则表达式用写到//里。没有位置参数的话,即匹配所有。

1: 第1
$: 最后一行
x,y: 第 x 行到第 y 行,如1,5 表示第 1 行到第 5
first~step: 指定起始行和步长,如 0~2 表示偶数行,1~2 表示奇数行
x,+n: 指定某行后面的几行,如 2,+5 等同于 2,7
/chr/: 含字符 chr 的行
/^$/: 空白行
/chr2/,5: 含字符 chr2 的行到第 5

关于正则匹配,只举了几个例子,所以还是搞懂正则啊。

3. 常见子命令

许多命令都很强大,但不需要完全掌握,也完全掌握不了......太真实了,55555

p: 打印匹配行(和 -n 选项一起合用)
d: 删除定位行
i: 在匹配行的前方插入文本
a: 在匹配行的后方插入文本
s: 替换
y: 字符转换
q: 第一个模式匹配完成后退出
{}: 在定位行执行的命令组,用分号隔开
w filename: 将匹配地址的所有行输出到指定的文件中

4. 进一步理解

Linux文本处理三剑客之sed 中有一个很好的例子,里面还给出了两个学习 sed 的网站。

$ zcat 1_SD_30_1.fq.gz | sed -n '1~4s/^@/>/p;2~4p' | sed 's/ .*//' | head -n 5
>ERR569754.4
CAGCATCACATATTAGGCTTTATCCCTTTAAAGCAATATATTTTGAAATATCAATTATCATTTTCATTTATGGCCCGTAGGGCATTGCAGGGCACAACG
>ERR569754.7
TGCTGTTCATGGTGTTGTTGCTCTTGCTGTTGTTGTTGTTGCCCACGATGGGATCGCCGTTGATGGGGCCGTTAACGGGATTGCCATGAATCTTGGTGT
>ERR569754.18

注意替换标志 p表示替换第一个符合规则的字符串,并打印;w filename 表示替换第一个符合规则的字符串,并输出到文件 filename 中;另外还有g 表示全局替换;十进制数字:替换文本行中第 n 个符合规则的字符串;空:替换文本行中的第1个符合规则的字符串。

$ sed '/^>/! y/ATCG/atcg/' genome.fa
>chr1
attcatagccaatttagcc
>chr2
gatcagcagtttatt
...

类似于 tr 命令。

$ sed -n -e '/>chr/w chr.txt' -e '/>chr/!w sequence.txt' genome.fa
$ cat chr.txt
>chr1
>chr2
>chr3
>chr10
>chr11
$ cat sequence.txt
ATTCATAGCCAATTTAGCC
GATCAGCAGTTTATT
GGCAAGTTACGGC
TTTCAGCCAG
CCATAA

w 实现了 id 和序列的快速分离。

别人写的很全,http://lnmp.ailinux.net/sed

相关文章

  • 2019-06-19

    一. 三剑客sed命令 sed - stream editor for filtering and transfo...

  • Linux云计算学习笔记day17

    Linux三剑客-sed sed命令执行过程https://www.processon.com/view/link...

  • day18-三剑客-sed

    三剑客——sed(增删改查) grep的参数 sed---> stream editor 流编辑器 ※功能——增删...

  • D18-操作系统sed命令

    一、系统三剑客命令 sed 1.作用 修改文件内容 对文件行进行操作sed - stream editor ...

  • sed的认识和基本应用

    1.Sed 介绍 sed全名叫stream deitor,流编辑器。作为shell文本处理三剑客之一的sed,其不...

  • linux三剑客

    1.三剑客grep、awk、sed 数据 :查找(grep),分段(awk),修改(sed) 第一剑客:grep ...

  • sed介绍

    sed是什么 sed是linux文本处理工具三剑客(grep,sed,awk)之一,用来处理文本的流编辑工具。主要...

  • linux020 文本处理命令 grep,sed,awk

    grep 、sed、awk被称为linux中的"三剑客"。 grep 适合单纯的查找或匹配文本 sed 适合编辑...

  • 第四周day18-三剑客-sed

    三剑客——sed(增删改查) 我们先来回顾下老三—grep的参数 sed---> stream editor 流编...

  • Linux“三剑客”-awk、sed、grep基础用法

    grep 、sed、awk被称为linux中的"三剑客"。 grep 更适合单纯的查找或匹配文本sed 更适合编...

网友评论

      本文标题:三剑客 | sed

      本文链接:https://www.haomeiwen.com/subject/lyyoiktx.html