三剑客之一 sed 对文件或是数据流,进行加工处理
sed语法:
sed 【选项】【sed内置命令字符】【输入文件】
选项:
参数选项 | 解释 |
-n | 取消默认sed的输出,常与sed内置命令p一起用 |
-i | 直接将内容写入文件,不用-i,sed修改的是内存数据 |
-e | 多次编辑,不需要管道符 |
-r | 支持正则扩展 |
sed的内置命令符,用于对文件进行不同的操作功能
sed常用内置命令符
sed内置命令符 | 解释 |
a | append, 对文本追加,在指定后面添加一行/多行文本 |
d | Delete, 删除匹配行 |
i | insert,表示插入文本, 在指定行前添加一行/多行文本 |
p | Print, 打印匹配行的内容, 通常p与-n一起用 |
s/正则/替换内容/g | 匹配正则内容,然后替换内容(支持正则),结尾g代表全局匹配 |
sed匹配范围
范围 | 解释 |
空地址 | 全文处理 |
单地址 | 指定文件某一行 |
/pattern/ | 被模式匹配到的每一行 |
范围区间 | 10,20 十到二十行, 10,+5第十行向下五行, /pattern1/ ,/pattern2/ |
步长 | 1~2,表示1、3、5、7、9行,2~2两个步长,表示2、4、6、8、10 偶数行 |
sed替换内容
全局替换
sed "s/你想找到的内容/你想替换后的内容/g^C "
用-e进行批量全局替换
sed -e "s///g" -e "s///g" ...
追加内容
sed "2a 想追加的东西" 文件 #追加到后一行
sed "2i 想追加的东西" 文件 #插入到前一行
sed "2a 想追加的东西./n想追加的东西" 文件 #多个追加到后一行 -i同上
每一行都追加
sed "a -----" 文件 #即对每一行都添加 其他同理