随手笔记NO.6
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随手笔记NO.6相关的知识,希望对你有一定的参考价值。
sed命令(流编辑器)他是一个行编辑器,它将内容的每一行逐行读取到内存中,在内存中完成编辑,然后将结果输出到屏幕上
sed 的基本用法
sed [options] ‘AddressCommand‘ file ...
options
-n: 静默模式,不再默认显示模式空间中的内容
-i: 直接修改原文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT
sed -f /path/to/scripts file
-r: 表示使用扩展正则表达式
Address:
1、StartLine,EndLine
比如1,100
$:最后一行
2、/RegExp/ #使用正则表达式,来指定模式
/^root/
3、/pattern1/,/pattern2/
第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行
4、LineNumber
指定的行
5、StartLine, +N
从startLine开始,向后的N行;
Command:
d: 删除符合条件的行;
p: 显示符合条件的行;
a \string: 在指定的行后面追加新行,内容为string
\n:可以用于换行
[[email protected] ~]$ sed ‘/^\//a \# hello world‘ /etc/fstab 以/开头的行,在后面添加新行。
i \string: 在指定的行前面添加新行,内容为string
r FILE: 将指定的文件的内容添加至符合条件的行处
[[email protected] ~]$ sed ‘2r /etc/issue‘ /etc/fstab 在/etc/fstab文件的第二行后面加上/etc/issue的整个文件内容
w FILE: 将地址指定的范围内的行另存至指定的文件中;
[[email protected] script]# sed ‘/oot/w /tmp/oot.txt‘ /etc/fstab 将/etc/fstab中包含oot的行另存为/tmp/oot.txt中
s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
加修饰符
g: 全局替换
i: 忽略字符大小写
s///: s###, [email protected]@@
\(\), \1, \2
&: 引用模式匹配整个串
下面两个简单的例子
- 将以l开头以e结尾的字符串后面加上r
[[email protected] mnt]# sed ‘s#(l..e)#&r#g‘ hehe.txt
[[email protected] mnt]# sed ‘s#(l..e)#\1r#g‘ hehe.txt
l..e: like-->liker
love-->lover - 就匹配到的字符串的l替换成L
[[email protected] mnt]# sed ‘s#l(..e)#L\1r#g‘ hehe.txt #注意这个时候不能使用&好,只能使用后向引用
like-->Like
love-->Love
以上是关于随手笔记NO.6的主要内容,如果未能解决你的问题,请参考以下文章