定义
sed是非交互式文本工具,相对于vim交互式文本工具。
处理过程
- 将当前正在处理的行保存到一个临时缓冲区(模式空间)
- 处理临时缓冲区的行,并发送到屏幕上
- 删除临时缓冲区的行,将文本中下一行保存到临时缓冲区
- 处理临时缓冲区的行,即②步
- 处理完文件最后一行,sed结束运行
用法
sed [option] 'action' [file]
option
- -n仅显示script处理后的结果
- -e 允许对输入数据应用多条sed命令进行编辑
- -f直接将sed的命令写在一个文件中,-f filename就可以运行文件中sed动作
action
- s 字符串匹配/查找
- i 编辑
- d删除
- a追加
- c替换
- p打印指定的输出行
例子
sed 's/LINUX/world/g' sed.txt
g的含义是整行都替换,如果是数字代变第几个匹配替换
sed 's/LINUX/world/1' sed.txt
sed 's/LINUX/world/3' sed.txt
s前面加数字,表示第几行匹配替换
sed '1s/LINUX/WORLD/1' sed2.txt
sed '2s/LINUX/WORLD/1' sed2.txt
sed '1,4s/LINUX/WORLD/g' sed2.txt
sed '4s/LINUX/WORLD/1;4s/LINUX/WORLD/2' sed2.txt
sed -e '4s/LINUX/WORLD/1' -e '4s/LINUX/WORLD/2' sed2.txt
sed -i 's/LINUX/WORLD/g' sed2.txt
sed '1i hello world ' sed2.txt
sed '1 a hello world ' sed2.txt
sed '/aa/d' sed2.txt
结语
如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订!