@llplmlyd
2019-09-30T08:32:41.000000Z
字数 679
阅读 930
Linux
文件内容并没有改变,除非你使用重定向存储输出或-i
sed [options]-n 打印匹配到的每一行 不加n参数就会 将全部打印出来-i 直接将处理的结果写入文件-i,bak 处理文件前先把文件备份一份-r 扩展的正则表达式-e 多点编辑
无指定 默认为全文单地址 指定行 n1,n2/pattern/ 被此处模式所能够匹配的每一行
n1,n2n1,+n2/pattern1/,/pattern1/n1, /pattern1/
步进
sed -n '1~2p' #只打印奇数行sed -n '1~2p' #只打印偶数行
d deletep printa assert 后插i insert 前插c 替换为单行或多行文本 支持使用\n实现多行追加w 保存模式匹配的行到指定文件r 读取指定文件的文本到模式空间中匹配的行后= 打印行号!模式空间中匹配取反 使用单引号s/// 查找替换n1,n2/s/加g表示行内全局搜索
demo 示例
sed [comman option] "[n1,n2][vim-command]/pattern/pattern/[g]" filename
sed "1,2s/A/e/g" filenamesed "[n1]c[....]" filename # 将n1 行整行替换成[...]sed -n "[n1]r/[filepath]" filename # 将filepath的文件读取到filename的n1行之后 输出到屏幕sed -n '2!p' filename # 打印除了2行之外的所有行,!这里只能使用单引号sed -n '
高级命令略
