sed是Linux三剑客之一。
Sed是一种非交互式的流编辑器,可动态编辑文件;流编辑器则会在编辑器处理数据之前基于预先提供的一组 规则来编辑数据流 。
Sed本身是一个管道命令,可以分析 standard input 的,主要是用来分析关键字的使用、统计等,此外还可 以将数据进行替换、删除、选中、选取特定行等功能
-n :安静模式。在sed的一般用法中,所有来自文件中的数据都会被列出到屏幕上,如果加上-n,则只有经过sed特殊处理的那行(或操作)才会被列出来。
-e :直接下命令行模式上进行sed的动作编辑。
-f :直接将sed的动作写在一个文件内,-f filename 则可以执行file内的sed动作。
-r :sed的动作支持的是扩展型正则表达式的语法(默认是基础正则表达式的语法)。
-i :可直接对源文件内容进行修改。。危险操作
-h或–help:显示帮助;
-V或–version:显示版本信息
i :插入,在目标行的上面新增一行。
a :插入,在目标行的下面新增一行。
d :删除所选行。
p :打印,也就是将某个选择的数据打印出来,通常参数-p与参数-n搭配使用。
s :替换,可以直接进行替换的工作。
c :替换,c的后面可以接替字符串,这些字符串可以替换n1,n2之间的行。
w :写并追加模板块到file末尾。
W : 写并追加模板块的第一行到file末尾。
! :表示后面的命令对所有没有被选定的行发生作用。
= :打印当前行号; # 把注释扩展到下一个换行符以前。
以上参数皆不改变原文件内容
g :表示行内全面替换;
x: 表示互换模板块中的文本和缓冲区中的文本;
y :表示把一个字符翻译为另外的字符(但是不用于正则表达式);
\1: 子串匹配标记;
& :已匹配字符串标记;
^ 匹配行开始,如:/^ sed/匹配所有以sed开头的行
$ 匹配行结束,如:/sed$/匹配所有以sed结尾的行;
.: 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,后是d;
*:匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行;
[] 匹配一个指定范围内的字符,如/[ss]ed/匹配sed和Sed;
[^] 匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行;
\ (…\ ) 匹配子串,保存匹配的字符,如s/(love)able/\1rs,loveable被替换成lovers;
& 保存搜索字符用来替换其他字符,如s/love/&/,love这成love;
< 匹配单词的开始,如:/\
\> 匹配单词的结束,如/love>/匹配包含以love结尾的单词的行;
x{m} 重复字符x,m次,如:/0{5}/匹配包含5个0的行;
x{m,} 重复字符x,至少m次,如:/0{5,}/匹配至少有5个0的行; x{m,n} 重复字符x,至少m次,不多于n次,如:/0{5,10}/匹配5~10个0的行;
-
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©