sed上古神兵
2020-10-28 本文已影响0人
yandaxin
sed [options] '匹配条件&操作指令;匹配条件&操作指令;'
file
options:
选项 | 功能 |
---|---|
-n ,--silent | 因为sed命令默认会向屏幕输出,设置此选项后阻止输出 |
-r | 支持扩展正则,sed默认是不支持扩展正则的 |
-i [suffix] | 直接修改源文件,如果设置了后缀名,sed将将数据备份;sed默认是只修改缓冲区的,并打印到屏幕上 |
-e | 指定需要执行的sed命令,支持使用多个-e参数 |
-f | 指定需要执行的脚本文件,需要提前将sed命令写入文件中 |
基本操作指令
指令 | 功能 |
---|---|
p | 打印当前匹配条件匹配的行 |
l | 打印当前匹配条件匹配的行(显示控制字符) |
= | 打印行号 |
a text | 在匹配的行后添加字符串text,text是独占一行 |
i text | 在匹配的行前添加字符串text,text是独占一行 |
d | 删除匹配的行 |
c text | 将匹配的行的整行替换为text |
r filename | 从filename中读取内容添加到匹配的行后面 |
w filename | 将匹配的行的内容写到文件filename中 |
q [exit code] | 立刻退出sed脚本 |
s/regexp/replace/ | 使用正则匹配,替换匹配到的数据,不是整行哦;regexp是正则表达式,replace是用来替换的字符串 |
s/regexp/replace/g | 加个g,如果一行数据中有多个regexp,都替换成replace |
s/regexp/replace/number | 加个n,如果一行数据中有多个regexp,仅仅替换第n个 |
数据定位方案
格式 | 功能 |
---|---|
数字 | 1就是第一行; 1,3就是第一行到第三行; |
数字1~数字2 | 数字1是起始行号,数字2是步长,例如1~3 等于匹配1,4,7,…… |
数字1,+N | 从数组1开始及其后面N行,例 1,+3 |
$ | 匹配最后一行 |
/regexp/ | 正则表达式 |
\cregexpc | 使用正则表达式匹配,c可以是任意字符,\xAAx将匹配AA |
! | 反操作 |