@breakerthb
2016-07-06T11:08:26.000000Z
字数 613
阅读 1143
Linux
Shell
sed[-nefr][动作]
-n 安静模式(只有特殊处理的一行才显示在屏幕上)
-e 在命令行模式进行sed编辑
-f 讲sed动作写在一个文件内,后跟filename
-r 支持扩展正则表达式(默认支持基础正则)
-i 直接修改读取的文件内容,不是由屏幕输出
[n1[,n2]] function
n1~n2行之间进行
a 新增
a后面可以接字符串,在新一行出现(当前行下一行)
c 替换
c后面可以接字符串,替换n1,n2之间的行
d 删除
通常不接任何参数
i 插入
后面可接字符串,在新一行出现(当前行上一行)
p 打印
选择数据打印出来。通常与-n一起使用
s 替换
可以直接进行替换。可以搭配正则表达式
$ nl /etc/password | sed '2,5d'
删除第二行到第五行
$ nl /etc/password | sed '2a drink tea'
第二行后面加一行
$ nl /etc/password | sed '2a drink teadrink beer'
用\分割可以加好几行
$ nl /etc/password | sed '2,5c AAAAA'
将第2~5行换成AAAAA
$ nl /etc/password | sed -n '5,7p'
打印第5~7行
$ nl /etc/password | sed -n '2p'
打印第2行
$ sed 's/old string/new string/g'
字串替换
$ sed -i 'function' filename
直接修改filename