sed是一个流编辑器(Stream Editor),用于“过滤”和“转换”文本,它的输入可以是一个文件或者管道(从其它程序输入)。它处理完后默认输出到标准输出设备(一般是屏幕)。

命令参数

这里只做简单使用介绍,完整的用法请man sed来查看。

用法:

sed [OPTIONS] {script或-e script或-f script-file} [input-file]

OPTIONS

-i[SUFFIX] :表示直接修改文件内容,而且可指定SUFFIX将原文件备份。

-n :关闭输出;

-e script :可以指定多个此参数而执行多个script;

-f script-file :使用文件中的script

script

scipts由“地址范围”和“命令”两部分组成,可以没有地址范围;

地址:

N :N是一个数字代表指定行号;
$ :匹配最后一行;
...
命令:

p :打印当前匹配的内容行;
d :删除匹配的内容行;
s/regexp/replacement/ :使用replacement替换regexp匹配的内容;
...

常用样例

替换文件中的字符串,并备份文件

sed -i.bak s/ftp.cn.debian.org/mirrors.163.com/ /etc/apt/sources.list
sed -i 's/^[^#].*swap*/#&/g'  fstab:注释掉含有“swap”的行,& 符号在sed命令中代表上次匹配的结果。
sed -i '/^#.*swap/s/^#//g'  fstab:取消含有字符串swap的行最前面的注释符号#,//两杠表示空格,以空格替换#,等价取消#。
sed -i '/^#/d' file1  :删除注释行。
sed -i '/^$/d' file1  :删除空格行。
sed -i 's/.//'  file1:删除每行第一个字符。
sed  -i 's/..//' file1:删除每行前两个字符。
sed  -i 's/.\{5\}//' file1:删除每行前k个字符,例如k=5 。
sed -i '1,4s/^/#/g' file1:将文件的1-4行注释掉。
sed -i '/^#.state.checkpoints.dir.*/s/^.*/state.checkpoints.dir: hdfs:\/\/hdfs-nn1:9000\/flink-checkpoints/g' $FLINK_HOME/conf/flink-conf.yaml | grep state

相关内容

· sed

[ 编辑 | 历史 ]
最近由“jilili”在“2023-03-15 01:44:14”修改