1.命令作用
流编辑器过滤和转换文本(stream editor for filtering and transforming text);sed是一种强大的流式文本编辑器,主要用于非交互式文本处理;
2.命令语法
Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...
3.参数详解
OPTION:
- -n, --quiet, --silent,抑制默认输出行为(静默输出)
- -e script, --expression=script,可指定多个-e参数,定义多个可执行的命令
- -f script-file, --file=script-file,将script-file的内容添加到需要执行的命令中
- --follow-symlinks,修改符号链接而非实际文件(默认参数),与-i参数一起使用,软链接修改后会变成实际的文件
- -i[SUFFIX], --in-place[=SUFFIX],直接修改文件edit files in place (如指定SUFFIX后缀,则进行备份为后缀名称,然后修改源文件);如果修改的是软链接,修改后会变成实际的文件
- -c, --copy,-i直接修改文件时,使用重命名(rename)而不是拷贝复制(copy),保留文件的inode和权限属性
- -b, --binary,不进行任何操作;以兼容WIN32/CYGWIN/MSDOS/EMX (以二进制模式打开文件(CR+LFs are not treated specially))
- -l N, --line-length=N,-l N后指定'l'命令来指定换行的长度N
- --posix,默认为GNU扩展;--posix是禁用所有GNU扩展,使用POSIX扩展,主要是为了兼容macOS系统用
- -r, --regexp-extended,在脚本中使用扩展正则表达式;默认使用基本正则(BRE),-r指定扩展正则(ERE)
- -s, --separate,将文件视为独立的,而不是单个连续的长流;默认情况下sed将所有输入的文件视为连续数据流(行号连续递增),添加-s后每个文件独立维护处理上下文(行号、模式空间等重置);会影响多个文件处理的性能
- -u, --unbuffered,从输入文件加载最少量的数据,并更频繁地刷新输出缓冲区;即sed默认会按块缓冲输入数据以提高性能,添加-u后强制逐行立即处理输入流,禁用缓冲优化;会影响大文件或多文件处理的性能
- -z, --null-data,用NUL字符分隔行;默认分隔行是\n,-z可将\n作为普通字符进行被替换
- --help,显示帮助信息并退出
- --version,输出版本信息并退出
script-only-if-no-other-script:
- s, '[[n,]m]s/regexp/replacement/[num/i/g/p/w newfile]',
- s是将regexp正则匹配的内容替换为replacement替换内容
- 其中n、m为数值,[[n],m]省略即全文操作,若指定[[n],m]则替换指定的m行或则n到m行;
- 其中 / 为分隔符号,也可以指定为井号(#),如's#regexp#replacement#g',只要三个分隔符号指定一样即可;
- 同一行有多个regexp正则匹配,默认仅替换第一个,num可以指定替换匹配的第几个
- i 是忽略大小写
- g是同一行中


4732

被折叠的 条评论
为什么被折叠?



