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
-n 和 p 一起使用表示只打印发生匹配的行
以上是在含有Deve的行后加上(append) teste
以上是在含有Deve的行前加上(Insert) teste
以上为将汉以后deve的整行替换为teset
3)行内的内容替换 加上-i选项之后文件中的内容被改变 4) 删除匹配的行以上分别是
A. 删除指定的第二行到含有good的行,讲剩余行打印出来
B. 删除第2行到第6行
C. 删除含有good的行
以上使用()来表示对应的匹配项, 最多匹配到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
网友评论