[AD] -- 下方为内容广告,点击支持作者,想过滤广告? -- [AD]
sed 可以对文件做些简单的修改。每次将一行文件存储在一个叫模式空间的临时缓冲区中,处理完后输出到屏幕,默认不修改文件内容除非重定向。
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
file(s) 表示可以接一个或者多个文件
参数 | 含义 |
---|---|
-e –expression= | 指定处理的脚本内容,可以使用多次,在同一行内执行多条命令 |
-n –quiet –silent | 只显示处理完后的结果,没有变化的内容不会输出 |
-i | 直接编辑文件,所有改动存入文件,不输出到屏幕 |
-f | 导入处理的脚本内容 |
分号分隔开不同的命令,命令前可以限定范围
1d
删除第一行
1,$d
删除第一行到最后一行
1~2d
从第一行开始,每两行删一行
$d
删除最后一行
命令 | 含义 |
---|---|
a | 在当前行后插入文本 |
i | 在当前行前插入文本 |
c | 把选定的行替换成新的文本 |
d | 删除 |
s | 替换指定字符 |
p | 打印内容 |
w filename | 写出到文件(写当前行内容)sed -n '/test/w file' example 当前行有 test 就写入。 |
r filename | 读入文件(读入所有文件)sed '/test/r file' filename 当前行有test就读入文件内容。 |
q | 退出(这个就没必要限定范围了吧) |
grep 也能搜索,但是不能替换。两者都能用正则搜索,大同小异。记得转义符号。
标记 | 含义 |
---|---|
g | 当前行所有,没有加则只会处理遇到的第一个 |
p | 打印 |
& | 已经匹配到的内容 |
\[n] |
代表匹配的子串,例如\1 , \2 ,就不用重复写正则表达式。原先的正则表达式部分要加圆括号。 |
[AD] -- 下方为内容广告,点击支持作者,想过滤广告? -- [AD]