壳牌编程三剑客之sed

  

sed工具

  

<强> sed简介:
sed是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除,替换,添加,移动等),最后输出所有行或者仅输出处理的某些行se”也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于Shell脚本中,用以完成各种自动化处理任务。
<强> sed工作流程:
读取:sed从输入流(文件,管道,标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,模式空间)。
执行:默认情况下,所有的sed命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed命令将会在所有的行上依次行。
显示:发送修改后的内容到输出流。再发送数据后,模式空间将会被清空。
<强> sed命令格式:
sed(选项)的操作的参数
<强>常见的sed命令选项:
- e或——表达=:表示用指定命令或者脚本来处理输入的文本文件。
- f或——文件=:表示用指定的脚本文件来处理输入的文本文件。
- h或——帮助:显示帮助。
- n,——安静或沉默:表示仅显示处理后的结果。
-我:直接编辑文本文件。
<强>常见的操作:
:增加,在当前行下面增加一行指定内容。
c:替换,将选定行替换为指定内容。
d:删除,删除选定的行。
我:插入,在选定行上面插入一行指定内容。
p:打印,如果同时指定行,表示打印指定行,如果不指定行,则表示打印所有内容,如果有非打印字符,则以ASCII码输出。其通常与“n”选项一起使用。
s:替换,替换指定字符。
y:字符转换。

  

sed命令用法示例:

  

<强> 1),输出符合条件的文本(p)
sed test1 - n“p”。txt//输出所有内容,等同于猫test1。txt
翱桥票喑倘?椭畇ed”
sed - n test1 3、5 p。txt//输出3 ~ 5行
翱桥票喑倘?椭畇ed”
sed - n test1 p, n。txt//输出所有奇数行,n表示读入下一行资料
翱桥票喑倘?椭畇ed”
sed - n test1 n, p。txt//输出所有偶数行,n表示读入下一行资料
翱桥票喑倘?椭畇ed”
sed - n的1、5 {n, p} test1。txt//输出第1 ~ 5行之间的偶数行(第2/4/6行)
翱桥票喑倘?椭畇ed”
sed - n '//p的测试。txt//输出包含了的行
翱桥票喑倘?椭畇ed”
sed - n ' 4//p的测试。txt//输出从第4行至第一个包含了的行
翱桥票喑倘?椭畇ed”
sed - n '//='测试。txt//输出包含了的行所在的行号,等号(=)用来输出行号
翱桥票喑倘?椭畇ed”
sed - n”/\ & lt;木材\祝辞/p”测试。txt//输出包含单词木材的行,\ & lt; \祝辞代表单词边界
翱桥票喑倘?椭畇ed

  

<强> 2),删除符合条件的文本(d)
问test1。txt | sed的3、5 d '//删除第3 ~ 5行
翱桥票喑倘?椭畇ed”
问测试。txt | sed '/交叉/d '//删除包含交叉的行
翱桥票喑倘?椭畇ed”
sed '/^ [a - z]/d的测试。txt//删除以小写字母开头的行
翱桥票喑倘?椭畇ed”
sed '/C涝?d的测试。txt//删除以“!”结尾的行
翱桥票喑倘?椭畇ed

  

<强> 3)替换符合条件的文本
sed test1 s///xt//将每行中的第一个的替换为
翱桥票喑倘?椭畇ed”
sed test1 ' s/l/l/2。txt//将每行中的第l 2个替换为l
翱桥票喑倘?椭畇ed”

壳牌编程三剑客之sed