what is sed#
- SED是功能强大的文本流编辑器。可以进行插入,删除,搜索和替换,最常用于查找、替换。SED可以在没有打开文件的情况下就编辑文件,这效率比用vim等软件打开并替换高多了。
- Unix中的SED命令支持正则表达式,从而可以执行复杂的模式匹配。
参数说明#
- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
- d :删除,d 后面通常不接任何东西
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
- p :打印,通常 会与参数 sed -n 一起运行
- s :替换,可以搭配正规表示法,例如 1,20s/old/new/g 就是啦!
替换#
1. 替换每行第一个字符串pattern#
1 | $sed 's/unix/linux/' geekfile.txt |
2. 替换每行第n个 pattern (使用/1,/2)#
1 | $sed 's/unix/linux/2' geekfile.txt |
3. 替换每行所有 pattern (使用/1,/2)#
1 | $sed 's/unix/linux/g' geekfile.txt |
4.给行内单词第一个字母加括号#
1 | $ echo "Welcome To The Geek Stuff" | sed 's/\(\b[A-Z]\)/\(\1\)/g' |
删除#
1.删除第5行#
1 | $ sed '5d' filename.txt |
2.删除 3到5行#
1 | $ sed '3,5d' filename.txt |
3.删除 行内的 abc#
1 | $ sed '/abc/d' filename.txt |
打印#
1. 打印4到6行#
1 | [root@rhel7 ~]# sed -n '4,6'p a.txt |
2. 打印从n到最后#
1 | # sed -n '3,$'p a.txt |
3. 打印含有特定pattern的行#
1 | # sed -n /every/p a.txt |