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