sed命令简介
sed:Stream Editer
行编辑器 、全屏编辑器(nano、vi)
sed处理文本的内存空间叫做模式空间。
默认不编辑原文件,仅对模式空间中的数据做处理;而后,处理结束后,将模式空间打印至屏幕;
sed命令使用方法
sed [options] ‘AddressCommand’ file …
-n:静默模式,不再默认显示模式空间中的内容
-i:直接修改原文件
-e SCRIPT1 -e SCRIPT2 -e… :可以同时执行多个脚本(SCRIPT:’AddressCommand’ )
-f /PATH/TO/SED_SCRIPT: 执行文件中的脚本
sed -f /path/to/sed_script sed.txt
Address
1. StartLine,Endline
:比如 1,100(从第一行到第一百行)
2. /RegExp/
/^root/ (匹配到的行)
3. /pattern1/,/pattern2/
从第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行
4. LineNumber
指定的行
5. StartLine,+N
从StartLine开始,向后第N行(一共N+1行)
Command:
1. d:删除符合条件的行;sed '1,2d' FILENAME
2. p:显示符合条件的行;
3. a \string:在指定的行后面追加新行,内容为string。sed '/^\//a \#hello world' FILENAME
4. i \string:在指定的行前面追加新行,内容为string。sed '/^\//i \#hello world' FILENAME
5. r FILE:将指定文件的内容添加至符合条件的行后
6. w FILE:将地址指定的范围内的内容另存至指定的文件中
7. s/pattern/string/修饰符:查找pattern(可使用正则表达式),替换成string(默认只替换每行中第一个被匹配到的pattern )
修饰符:
g:全局替换
i:忽略字符大小写
s///改命令的其他方式:s### , s@@@
后向引用:\(\) \1 \2 ... sed 's#l\(..e\)#L\1#g' sed.txt
&:引用模式匹配到的整个串