美文网首页
sed 命令

sed 命令

作者: labrador1986 | 来源:发表于2018-12-11 20:02 被阅读0次

sed主要是对行操作,而cut 是队列来操作

sed 后面接的动作,请务必以 '' 两个单引号括住喔!

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s :取代,可以直接进行取代的工作。通常这个 s 的动作可以搭配正规表示法!
g: 全局模式,不加g的话只操作第一列的行
例如 1,20s/old/new/g 就是啦!

以行为单位的删除
nl test.txt |sed '2,5d'  #删除2-5行
nl test.txt |sed '5d'  #删除第2行
nl test.txt |sed '5,$d'  #删除第5行到最后一行
nl test.txt |sed '5,$d'  #删除第5行到最后一行
image.png
以行为单位的增加
cat test.txt | sed '2a sunran 99999999'| nl #第2行之后插入一行内容
cat test.txt | sed '2i sunran 99999999'| nl #第2行之前插入一行内容
cat test.txt | sed '2i sunran 99999999\nsunran8888888'| nl #插入多行,注意中间的\n为换行符
image.png
以行为单位的替换
cat test.txt | sed '2c sunran 99999999'| nl  #替换第2行的内容为 sunran 99999999
cat test.txt | sed '2c sunran 99999999'| nl  #替换2,5行的内容,注意替换后只保留一行
image.png
以行为单位的显示
cat test.txt | sed -n '2,5p'  #显示2到5行的内容
数据的搜寻并显示
 nl test.txt | sed '/TCGA/p'
image.png

如果root找到,除了输出所有行,还会输出匹配行。

 nl test.txt | sed -n '/TCGA/p'
数据的搜寻并删除
 nl test.txt | sed '/TCGA-DD/d'
image.png

数据的搜寻并替换

除了整行的处理模式之外, sed 还可以用行为单位进行部分数据的搜寻并替换
注意c是整行替换,而s是行为单位进行部分数据的搜寻并替换
sed 's/要被取代的字串/新的字串/g'

 nl test.txt | sed 's/TCGA-DD/sunran/g'
image.png
数据的搜寻并执行命令
nl test.txt| sed '/TCGA/{s/TCGA/sunran/}'

搜索含有TCGA的行,并执行{}的内容
例如,搜索含有TCGA的行,执行{s/TCGA/sunran/},即替换TCGA为sunran

image.png
多点编辑

一条sed命令,删除text第10行到末尾的数据,并把TCGA替换为sunran
sed -e '10,$d' -e 's/TCGA/sunran/g'


image.png

直接修改文件内容(危险动作)

sed 可以直接修改文件的内容,不必使用管道命令或数据流重导向! 不过,由於这个动作会直接修改到原始的文件,所以请你千万不要随便拿系统配置来测试!

把一行的中TCGA含有

sed -i 's/TCGA/8888888/g' test.txt

sed 的『 -i 』选项可以直接修改文件内容,这功能非常有帮助!举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订!


image.png

提取间断行

nl test.txt|  sed -n 2~4p  #显示第二行开始,每间隔4行
image.png

在命令行上使用多个编辑器命令

使用-e选项可以执行多个命令

sed -e 's/brown/green/; s/dog/cat/' data1.txt

The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.

两个命令都作用到文件中的每一行数据上。命令之间必须用分号隔开,并且在命令末尾与分号之间不同有空格。

从文件中读取编辑器命令
如果有大量要处理的sed命令,将其单独放入一个文本中会更方便,可以用sed命令的-f选项来指定文件。
cat script1.txt
s/brown/green/
s/fox/elephant/
s/dog/cat/

sed -f script1.txt data1.txt
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.

这种情况不用在每个命令后面放一个分号,sed知道每行都有一条单独的命令。

相关文章

  • linux || sed(2)

    调用sed有三种方式: 在命令行键入命令; 将sed命令插入脚本文件,然后调用sed; 将sed命令插入脚本文件,...

  • sed命令

    sed命令 对比用paste和tr命令将fastq文件转换为fasta文件 paste sed命令 sed用法

  • 【linux命令之sed】

    sed的选项、命令、替换标记 命令格式 sed [options] 'command' file(s)sed [o...

  • linux sed

    Sed简介 定址 Sed命令

  • LINUX sed命令的使用

    LINUX sed命令的使用 命令格式 sed常用命令 sed替换标记 sed元字符集 已匹配字符串标记& ⼦串匹...

  • Linux-sed-1

    #############20190820- sed命令用法详解 sed命令用法 sed是一种流编辑器,它是文本处...

  • [2020春假]Linux下的文本操作(sed篇)

    Chapter4 sed替换命令详解 sed的替换命令是最常用的,也是讲解最多的。sed的模式空间 sed的基本工...

  • Linux 去除文件中空行的几种方式

    tr 命令 sed 命令 awk 命令 grep 命令

  • Linux运维常用

    网络命令 Vim命令 sed命令 grep 命令

  • sed常用操作命令

    sed: stream editor , 流/行 编辑器 ; sed 命令详解: sed [OPTIONS].....

网友评论

      本文标题:sed 命令

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