sed命令详解

个人工作之中经常使用sed,但是比较简单的命令,并没有仔细的研究过sed详细用法,所以参考man手册进行了详细的整理。 sed是一个流式文本编辑器,可用来过滤和转换文本。基本用法如下: [source,shell] ---- sed [OPTION]... {script-only-if-no-other-script} [input-file]... ---- 其中的“[OPTION]”是可选的命令行参数,“{script-only-if-no-other-script}”是要执行的sed命令(如果没有用-e或-f指定别的命令的话,否则会视为输入文件路径),“[input-file]”是输入文件的路径。 sed的命令格式为:[地址]命令。地址是可选的,根据具体的命令而定。如‘/^hostname/aip=8.8.8.8’,‘p’等,地址格式和具体的命令可参下文。 == 选项及其含义 -n:: --quiet:: --silent:: 禁用自动打印模式空间,也就是禁止打印匹配的内容 -e script, --expression=script:: 添加要执行的sed命令 -f script-file, --file=script-file:: 将文件中的内容添加到要执行的命令中 --follow-symlinks:: 在in-place(如下)模式下,追踪符号链接 -i[SUFFIX], --in-place[=SUFFIX]:: 对文件进行直接更改,如果提供了SUFFIX,会使用SUFFIX作为扩展名进行备份 -l N, --line-length=N:: 指定行的长度 --posix:: 禁用所有的GNU扩展 -E, -r, --regexp-extended:: 在命令中使用posix扩展正则表达式(考虑到兼容性,应使用-E) -s, --separate:: 将各个文件单独对待,而不是一个长的连续的文本流。 --sandbox:: 在沙箱模式下运行 -u, --unbuffered:: 每次加载较小数量的数据,并加快刷新输入缓存的频率。 -z, --null-data:: 采用NUL字符(ascii 0)分割行 --help:: 显示帮助信息 --version:: 打印版本信息 如果没有指定-e,--expression,-f或--file选项,那么第一个非选项参数(及位置参数)将被作为命令来对待,剩下的所有参数都将作为文件名处理,如果没有指定文件名,则在标准输出中读取数据。 == 命令列表 === 无地址命令 : label:: *b*和*t*的标号 #comment:: 注释持续到换行符(或-e参数的结尾) }:: {}区块的闭合括号 === 0或1个地址的命令…