sed命令总结

sed命令总结

sed [选项] [动作]

选项与参数

n:安静模式,只有sed特殊处理的行才会被打印
e:直接在命令列模式进行sed动作
f:执行-f 后文件内的sed动作
r:sed 的动作支持的是延伸型正规表示法的语法
i:直接修改读取的文件内容,而不是输出到终端

function:

a :新增行, a 的后面可以是字串,而这些字串会在新的一行出现(目前的下一行)
c :取代行, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
d :删除行,因为是删除,所以 d 后面通常不接任何参数,直接删除地址表示的行;
i :插入行, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s :替换,可以直接进行替换的工作,通常这个 s 的动作可以搭配正规表示法

一般function的前面会有一个地址的限制,例如 [地址]function,表示我们的动作要操作的行

> sed '1,2d' test.txt  #删除 1-2行
> sed '/^2/d' test.txt  #删除以2开头的行, '//' 表示正则表达式
> sed '1a hello word' test.txt  #在第一行之后插入 hello word
> sed '1i hello word' test.txt  #在第一行之前插入 hello word
> sed '1c hello world' test.txt  #替换第一行为hello word
> sed '/^2/c hello world' test.txt  #替换以2开头的行为hello word
> sed 's/aa/AA/' test.txt  #替换所有行中第一个aa为AA
> sed 's/aa/AA/g' test.txt  #替换所有行中的aa为AA,g表示通过正则匹配替换
> sed '1s/aa/AA/g' test.txt  # 替换第一行中的aa为AA
> sed '5,$s/aa/AA/' test.txt  #替换第5行到文本结尾的aa为AA
> sed '/^[0-9]/s/aa/AA/' test.txt  # 替换以数字开头的行中的aa为AA
> sed -n '2p' test.txt  # 打印第二行

ps:mac中 a、i 不会换行

posted @ 2019-03-13 16:00  炮兵  阅读(205)  评论(0)    收藏  举报