sed命令
sed全名叫Stream EDitor它是一个流式编辑器也就是行编译器,工作是在模式空间中进行的。
sed就是个管线命令;(还可以将数据进行取代、删除、新增、摘取特定行等功能)
用法参数: sed [-nef] [动作]
参数: -n 使用安静模式,(只列出经过sed特殊处理过的某行)
-e 直接在指令模式上进行sed的动作编辑;
-f 将sed的动作写在一个档案内,
-r 动作支持的是正规表达式的语法
动作命令:动作要用引号括起来
p 显示、
d 删除、
s 替换 并且支持 g所有和i不区分大小写、
c 取代、
r 在匹配行后加入内容、
a \: 在模式匹配到的行后面添加新内容、
i \: 在模式匹配到的行前面添加新内容、
w 将匹配到的内容保存在别的文件中、
h 将模式中的内容复制到保留空间 覆盖、
H 将模式中的内容复制到保留空间 追加、
g 将保留空间内容复制到模式空间 覆盖、
G 将保留空间内容复制到模式空间 追加、
n 操作匹配到的下一行,并覆盖匹配到的行、
N 操作匹配到的行并追加到下一行、
b: 跳转、忽略符合模式的行、
x: 保留空间和模式空间对调、
具体操作
sed "4,8d" 文件 (把一个文件中的第4到第8行删除)
sed "4,8!d" 文件 (!取反结果)
sed -n "5,8p" 文件 (显示一个文件的5到8行)
sed "s/被取代的内容/新的内容/g" 文件 (把文件内某些内容用新的替换)
sed "2,5p" 文件 (p命令为显示,但是sed默认的也是显示所以加入p命令后结果会显示两遍)
sed -n "5n;p" 文件 (覆盖第5行)
sed '8b' 文件 (跳过第8行显示)sed '/[a-z]/d' 文件 (删除有小写字母的行)
sed '/#/a \ 123' 文件 (在带有#号的行后加入123)sed '/#/i \ 123' 文件 (在带有#号的行前加入123)