sed命令的基本语法如下:
sed [options] commands [inputfile...]
options表示sed命令的一些选项
- -n 取消默认输出
- -e 多点编辑,可以执行多个子命令
- -f 从脚本文件中读取命令(sed操作可以事先写入脚本,然后通过-f读取并执行)
- -i 直接编辑原文件
- -l 指定行的长度
- -r 在脚本中使用扩展表达式
sed的动作:
- a:新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
- d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
- s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!
新建一个test.txt
1、新增
实现第4行下新增一行数据,不改变原有文件内容。
sed -e 4a\ggg test.txt
2、删除
nl test.txt |sed '1,2d'
或者
sed -e '1,2d' test.txt
3、打印/查询
数据的搜寻并显示
找到test.txt中的有a的行。
nl test.txt | sed -n '/a/p'
使用-n的时候将只打印包含模板的行。
4、替换
sed '位置参数 s/pattern/replaced/[flag]'
pattern为要替换的文本,支持正则表达式,replaced表示用来替换的一般字符串(不支持正则表达式)。
flag是替换标志,用来影响匹配替换的规则:
- g 全局匹配,会替换文本行中所有匹配的字符串
- 十进制n 替换文本行中第n个匹配的字符串
- p 替换第一个匹配的字符串,并且将缓冲区输出到标准输出
- w 替换第一个匹配的字符串,并且将改动的行输出到磁盘文件中
- 缺省 替换第一个匹配的字符串
评论区