1. sed简介
Sed:Stream Editor 流式编辑器 又称行编辑器,每次只编辑一行。
2. 基本用法
1 | # sed [OPTION]... {script-only-if-no-other-script} [input-file]... |
选项与参数:
-n:只显示sed匹配到的行。其余行不显示。
-i:可以直接操作原文件。默认情况下sed不会改变原文件,但是-i选项可以修改原文件,此选项应慎用。
-r:可以使用标准正则表达式。默认情况下sed只支持基本正则表达式,但是加上-r选项后则支持扩展正则表达式
-e:可以同时执行多个命令
常用格式:
(1)Sed [options] ‘script’ input_file……
(2)Sed [options] -f script_file input_file……
(3)Sed [options] ‘ADDR1,ADDR2command’ input_file……
(4)Sed [options] ‘/PATTERN/command’ input_file……
(5)Sed ‘/PATTERN1/,/PATTERN2/command’ input_file……
常用命令(command)如下:
- 打印p
1 | # sed -n '3p' /etc/passwd --打印第3行 |
- 删除d
sed删除语法:
sed ‘范围d’ file
以行为单位删除,如果不指定范围,默认范围是整个文件。
1 | # sed '1d' /etc/passwd 删除第一行,第二行2d,第三行3d,以此类推,最后一行$d |
- 替换
sed替换语法:
sed ‘范围 s/老字符/新字符/标记’ file
sed ‘范围 s#老字符#新字符#标记’ file
如果不指定范围,默认范围是整个文件。
sed ‘y/老字符/新字符/‘
1 | # head -5 /etc/passwd | nl |sed '1,4s/nologin/NOLOGIN/g' |
- 修改之后保存
1 | # sed -i '/^root/a\the first line' file --修改源文件的操作要谨慎 |