@llplmlyd
2019-09-30T16:32:41.000000Z
字数 679
阅读 753
Linux
文件内容并没有改变,除非你使用重定向存储输出或-i
sed [options]
-n 打印匹配到的每一行 不加n参数就会 将全部打印出来
-i 直接将处理的结果写入文件
-i,bak 处理文件前先把文件备份一份
-r 扩展的正则表达式
-e 多点编辑
无指定 默认为全文
单地址 指定行 n1,n2
/pattern/ 被此处模式所能够匹配的每一行
n1,n2
n1,+n2
/pattern1/,/pattern1/
n1, /pattern1/
步进
sed -n '1~2p' #只打印奇数行
sed -n '1~2p' #只打印偶数行
d delete
p print
a assert 后插
i insert 前插
c 替换为单行或多行文本 支持使用\n实现多行追加
w 保存模式匹配的行到指定文件
r 读取指定文件的文本到模式空间中匹配的行后
= 打印行号
!模式空间中匹配取反 使用单引号
s/// 查找替换
n1,n2/s/
加g表示行内全局搜索
demo 示例
sed [comman option] "[n1,n2][vim-command]/pattern/pattern/[g]" filename
sed "1,2s/A/e/g" filename
sed "[n1]c[....]" filename # 将n1 行整行替换成[...]
sed -n "[n1]r/[filepath]" filename # 将filepath的文件读取到filename的n1行之后 输出到屏幕
sed -n '2!p' filename # 打印除了2行之外的所有行,!这里只能使用单引号
sed -n '
高级命令略