|
发表于 2022-7-5 09:56:18
|
查看: 1279 |
回复: 0
一、软件介绍
sed 全称是 Stream EDitor,是一种流编辑器,什么是流编辑器呢。也就是相当于一个格式化的工具。当数据流过这个工具时,都被格式化成固定的格式。比如一个流水线中的一个模具,原材料是各种形状的,但是结果模具处理之后都变成同一的形状。这就是流编辑器。sed 默认一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。原文件内容并没有改变。sed 主要用来自动编辑一个或多个文件,简化对文件的反复操作。而不需要编写转换程序来完成。
二、命令大全
- #1 输出固定的行
- cat -n demo.fasta | sed -n '1307p'
- cat -n demo.fasta | sed -n '100,200p'
- #2 替换操作
- grep ">" demo.fasta | sed -e 's/gi/GI/' | head
- sed -i 's/gi/GI/g' demo.fasta
- sed -i.bak 's#GI#gi#' demo.fasta #改后生成新的文件bak后缀
- grep ">" demo.fasta | sed -e 's/|/#/2;s/ref/REF/' | head
- #3 打印发生替换的行
- sed -n 's/gi/GI/p' demo.fasta
- #4 同时进行多条件替换;
- sed -f sed.list demo.fasta
- #5 使用正则表达式替换,空格后一串字符删除掉
- grep ">" demo.fasta | sed -e 's/ .*//g' | head
- #使用正则表达式替换,冒号后一串字符删除掉
- grep ">" demo.fasta | sed -e 's/:.*//g' | head
- #6 行首添加内容
- sed -e 's/^/time /g' test.bed
- #7 行尾追加内容
- sed -e '$a \the end of file' test.bed
- #直接修改
- sed -i '$a \###the end of file###' test.bed
- #8 行寻址
- sed -n '/ref/p' demo.fasta
- grep ">" demo.fasta | cat -n | sed -n '100,200 s/gi/GI/gp'
- grep ">" demo.fasta | cat -n | sed -n '100,200! s/gi/GI/gp'
- #9 删除操作
- sed -e '/>/d' demo.fasta #删除包含>的行;
- #10 删除空白行,比较常用
- sed -e '/^\s*$/d' demo.fasta
- #11 对应替换 A-a
- sed -e 'y/ATCG/atcg/' demo.fasta
- sed -e '/>/!y/ATCG/atcg/' demo.fasta #不处理>行
- #12 DNA序列反向互补配对,并修改大小写
- sed -e '/>/!y/ATCG/tagc/' demo.fasta
- #13 fastq转换为fasta
- zcat demo.fastq.gz | sed '0~4d' | sed '0~3d;s/^@/>/1'
复制代码
|
|