正则表达式---sed

sed (stream editor 流编辑器)
基本语法:
sed [-n] program [file-list]
sed [-n] –f program-file [file-list]
sed 是一个批处理编辑器。可以对来自文件或者标准输入的输入流进行交换。常被用于管道中的过滤器。sed工具从命令行所指定的文件或者标准输入中获取输入流。除非明确指定输出目标,否则将把结果输出到标准输出。

选项参数
-n (quiet, silent) 安静模式。加上-n后,只有经过sed特殊处理的那一行才会被列出来
-e (script, --expression=script) 直接在指令列模式上进行sed动作编辑
-f (script-file, --file=script-file) 直接将sed的动作写在一个文件内

Sed 动作
-i ([SUFFIX], --in-place[=SUFFIX]) 直接修改读取的文件内容,而不是由屏幕输出
-r (regexp-extended) sed的动作支持的是延伸型正则表示法的语法。(预设是基础正则表示法语法)

动作说明:[n1, [n2]]function
n1, n2: 不一定存在,表示选择进行动作
a (append) 新增,a 的后面可以接字符串,而这些字符串会在新的一行出现(当前行的系一行)
c (change,replace) 取代,c后面的接字符串,讲匹配的行替换为c后接的字符串
d (delete) 删除
i (Insert) 插入, i的后面接字符串,而这些字符串会在新的一行出现(当前行的上一行)
p (print) 打印,将某个选择的数据打印。通常p会与参数sed –n一起运行
s (substitution) 取代,可以直接进行取代的工作。通常的搭配是:s/old/new/g
w (write) 将匹配的内容写入另外一个文件中
h/H 将 pattern space 拷贝到 hold space
g/G 将 hold space拷贝到 pattern space

1)打印含有student的行

-n 和 p 一起使用表示只打印发生匹配的行

打印指定的行

打印从第6行开始到含有第一个含有stu结束的行

打印从第8行到最后行

2)插入某些内容

以上是在含有Deve的行后加上(append) teste

以上是在含有Deve的行前加上(Insert) teste

以上为将汉以后deve的整行替换为teset

3)行内的内容替换

加上-i选项之后文件中的内容被改变

4) 删除匹配的行

以上分别是
A. 删除指定的第二行到含有good的行,讲剩余行打印出来
B. 删除第2行到第6行
C. 删除含有good的行

5) 将匹配的行写入另一文件

6) 读取文件中的命令

7) 交换两个几个单词的位置

以上使用()来表示对应的匹配项, 最多匹配到9项。

8)&符号表示替换字符串中被找到的部分

9)s-替换 后面的字符可以被认为是新的命令分隔符,代替”/”,但是分隔符一定是s后面的字符

10)逗号表示选定行的范围

以上打印从含有You的行开始到含有Plan的行之间的行,无论Plan出现在哪儿,之间的行都被打印,如果Plan没出现,中间的行都将被打印
以上是打印从第3行到含有Plan的行之间的行,如果Plan没出现,中间的行都将被打印


以上是打印从第3行到含有Plan的行之间的行,如果Plan没出现,中间的行都将被打印

以下部分将You到Plan的行中间含有的better替换为best,并将影响到的行打印出来

11)-e 多点编辑

以上都是将第1行到第6行删掉,然后将剩余的good替换为better。 第二个示例中是再将Dev替换为def

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文承接之前写的三十分钟学会AWK一文,在学习完AWK之后,趁热打铁又学习了一下SED,不得不说这两个工具真的堪称...
    mylxsw阅读 4,417评论 3 74
  • Sed工具工作原理及特性 1. sed是流编辑器,每一次读取一行到内存中,即称之为模式空间(pattern spa...
    魏镇坪阅读 11,037评论 0 12
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,239评论 2 33
  • 这几天又再次体会到“学习”带给我的快乐。一些散落知识点在脑袋里融会贯通,串起来之后,感觉太美妙了。 直到最近我才发...
    申湘黔阅读 176评论 0 1
  • 前天被@到一条关于故宫博物院院长来苏讲座且统共只有25席虚位以待的微博。 虽然自带的抢票猜题BUG体质已经验证了无...
    清露未晞阅读 464评论 2 2