sed
原创
©著作权归作者所有:来自51CTO博客作者lxcome的原创作品,请联系作者获取转载授权,否则将追究法律责任
sed 流编辑器 非交互编辑器 不修改源文件 除非使用shell的重定向符保存和-i命令 支持sed脚本
sed 行编辑器 逐行处理被处理的文件内容 并将结果送至屏幕 vi 全屏编辑器
s 用一个字符串替换另一个 d删除行
sed ‘/This/d’ filename 删除含有This的行(只是显示删除,源文件不更改)
p打印行 sed –n ‘/this/p’ filename 打印包含this开头的行
p配的行显示了两次 默认会打印模式空间的所有内容 逐行读取,则每行都读进了模式空间 -n 只打印匹配到的行
sed –n ‘/^this/p’ filename 打印以this开头的行
sed ‘s/^this/THIS/’ filename 替换以this开头的行中的this为THIS (默认显示)
sed ‘2,3s/^this/THIS/’ filename 2,3指第二行到第三行
sed ‘/is/,/second/s/line/LINE/’ filename 从第一个出现is的行道第一次出现second的行,将line换成LINE
如果每行出现多次 则只替换第一个 若想全局替换 则加上一个修饰符g
sed ‘/is/,/second/s/line/LINE/g’ filename
sed ‘/is/,/second/s/line/LINE/gi’ filename 忽略大小写(i) (包含LinE等)
sed ‘/is/,/second/s/\(line\)/&r/gi’ filename从第一个出现is的行道第一次出现second的行,将line换成liner 使用&替换字符串
sed ‘/is/,/second/s/\([Tt]his\)/&e/g’ filename 不管this的大小写全部在后面加一个字符e
sed -e 可以同时指定多种操作
sed –e ‘/is/,/second/s/THIS/this/g’ -e /s/line/LINE/g’ filename
sed i在匹配到的行之前插入行 a 在匹配到的行之前插入一行或多行(多行只需要添加续行符)
sed ‘/you/i \ sed ‘/you/a \
>how are you ?’ \ >how are you ?’ \
> filename (续行符\) > filename (续行符\)
在包含you的行前插入how are you ? 在包含you的行后插入how are you ?
sed r 从文件读取行 sed ‘/this/r’ filename 在匹配this的行后添加filename文件的内容
w 将匹配的行写入其它文件
y将字符转换为另一字符(不能对正则表达式用y命令)
sed ‘y/t/T/’ filename 将t全部换做T
sed正则表达式
sed ‘s/\(l.\{1,3\}i \)\(ne\)/\2\1/g’ filename 匹配l后最少1个字符最多三个字符后为i 的字符串 并将其后的ne与其换位
例题
上一篇:umask,通配符,history,bash 的变量,read
下一篇:vim
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
shell脚本之sed的使用
sed的具体使用方法
sed 正则 bash -
MySQL sed mysql sed -i
shell 文件内容替换
sed bc ruby