美文网首页
sed的基本使用

sed的基本使用

作者: iCarpe_DIEM | 来源:发表于2019-04-03 11:26 被阅读0次

sed简单介绍:
   sed是一款文本处理工具,称之为“流编辑器”,它的工作机制是,从文件中读取每一行数据放入模式空间中(pattern space),而后通过模式对模式空间中的数据进行匹配,如果匹配则对数据做相应的操作(action),如果不匹配则打印或者不打印,然后继续读取文件下一行的数据,直到数据全部读取完,如图:

sed工作机制.png
sed用法:
用法:
    sed [OPTION]... {script-only-if-no-other-script} [input-file]...
    选项:
        -n, --quiet, --silent:不输出模式空间的内容至屏幕上
        -e script, --expression=script:实现多点编辑
        -f script-file, --file=script-file:从指定文件中读取编辑脚本,也就是将要执行的操作放入脚本中。
        -r, --regexp-extended:支持使用扩展正则表达式
        -i[SUFFIX], --in-place[=SUFFIX]:直接对原文件进行编辑(危险操作)
        -i.bak: 备份文件并原处编辑

    编辑命令:
        p:打印模式空间数据
        d:删除模式空间数据
        a \text:在后一行添加文本
        i \text:在上一行添加文本
        c \text:将匹配的行替换为指定的数据
        w filename:将匹配到的数据存放到文件中
        r filename:将文本中的内容追加至匹配到的模式空间后面
            sed '/^2/r /etc/passwd' test
        =:为模式匹配到的行打印行号
        !:模式空间匹配到的行做取反操作
        s///:替换操作,其中分割符可以是###、@@@
            替换标记:
                g:全局替换
                w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中
                p:显示替换成功的行

    `地址定界:
          空地址:对全文进行处理
          单地址:
              #:指定位置
              /pattern/:对匹配到的行做处理
           地址范围:
              #,#:对指定的范围做处理
              #,+#:在第一个#之上+多少,例如:2,+3== 2,5,表示处理2~5行的数据
              /pattern1/,/pattern2/,表示处理模式pattern1~pattern2中的数据
            #,/pattern/:表示从第几行~pattern匹配到的行
          
          步进:~
              1~2:奇数行(是根据行号来定义的)
              2~2:偶数行(是根据行号来定义的)
    `
       

示例:
1)sed -n '2p' test:表示打印第2行的数据

1.png
2)sed -n '2p' test:表示打印第2行的数据
2.png
3)sed -n -e '2p' -e '5p' test:表示打印第2行跟第5行的数据
3.png
4)sed -n -f sedTest test:
4.png
5)sed -n -r '/root/p' /etc/passed:打印包含root字符的行
5.png
6)sed -i.bak '3d' test:删除第3行的数据
6.png
7)sed '2a \etc/passwd' test:在第2行下添加etc/passwd
image.png
8)sed '2i \etc/passwd' test:在第2行上面添加一行数据
image.png
9)sed '2c \This is a substitution command' test:将匹配到的行替换为指定的文本
image.png
10)sed -n '2w test.bak' test:将第2行的数据存储到test.bak文件中
image.png
11)sed '2r /etc/passwd' test:将passwd中的数据添加至匹配到的行下面
image.png
12)sed '/root/=' test:为匹配的行显示行号
image.png
13)sed '2!p' test:取反操作,显示不被匹配到的行
image.png
14)sed 's@root@Just for testing purposes@g':全局替换,替换匹配到的root字符
image.png
15)sed -n '2,5p' test:只显示第2行~第5行的数据
image.png
16)sed -n '2,+3p' test:同上
image.png
17)sed -n '/root/,/ftp/p' /etc/passwd:显示passwd文件中行首为root~行首为ftp的所有数据
image.png
18)sed -n '1~2p' test:显示行号为奇数的所有行
image.png
19)sed -n '2~2p' test:显示行号为偶数的所有行
image.png

Thanks

相关文章

  • sed 基本使用

    写在前面 本篇是个人学习整理笔记而得。原书:Sed and Awk 101 Hacks -中文版引用书结尾的一句话...

  • sed的基本使用

    sed简单介绍:   sed是一款文本处理工具,称之为“流编辑器”,它的工作机制是,从文件中读取每一行数据放入模式...

  • Linux命令之sed批量替换字符串操作

    Linux中sed命令功能强大,本文将详细介绍如何使用sed命令进行字符串替换。一、基本的替换命令格式1:sed ...

  • Linux sed语法的基本使用

    sed [options] 'sed command' filename 适用于对文本的行进行处理 sed -i ...

  • sed与awk的学习(一)

    了解基本操作 以下是sed&awk书上的范例 sed基本操作 创建sed&awk文件夹 编辑list文件,将书上的...

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

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

  • sed命令使用

    sed基本用法:sed: stream EDitor 行编辑器,(全屏编辑器:vi)。 sed: 模式空间 默...

  • Linux awk和sed的用法

    sed工具简介 用法:sed [-nefri] 动作参数:-n:使用安静模式(Silent)模式,一般在sed的...

  • 正则表达式---sed

    sed (stream editor 流编辑器)基本语法:sed [-n] program [file-list]...

  • Day63-shell编程_正则表达式_sed

    1.sed基本概述 2.sed常用选项 -i -r0.sed相关示例文件 1.sed-n、-e选项示例 2.s...

网友评论

      本文标题:sed的基本使用

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