轻松玩转sed

sed处理文本方法

1.文本或管道输入
2.读入一行到模式控件
3.sed命令处理
4.输出到屏幕
所以 sed是一个流处理编辑器

sed一次处理一行内容
sed不改变文件内容(可以通过重定向改变文件)

sed格式

sed命令行格式

sed [options] 'command' file(s)

sed脚本格式

sed -f scriptfile file(s)

options: -e; -n
command包含行定位(正则)sed命令

-n 一般和 p组合使用,用来输出
例如:

sed -n '/root/p' /etc/passwd

这段命令是打印行中包含root的那一行
这里 /root/ 就是通过正则进行的行定位,p为打印的命令
其实-n 和p组合的情况下就是为了你取出多行输出中的固定的一条数据


也可以通过这样进行行定位:

sed -n '1p' /etc/passwd

这段命令是打印第一行的意思
这个属于通过行号进行的行定位


还可以这样:

sed -n '1,10p' /etc/passwd

这段命令是打印1到10行的意思


还可以通过步长进行跳行输出

sed -n '1~2p' /etc/passwd

sed替换命令

s/正则/替换成的内容/
例如:

cat /etc/passwd |sed 's/:/@/'

将 passwd 文件中的 : 替换成 @
细心的话就会发现 每一行只替换了一个 @
如果每一行全部替换,就这样:

cat /etc/passwd |sed 's/:/@/g'

替换的高级语法

\1 &

其他

{} 里面可以写多条命令,命令之间用;分割

posted @ 2019-09-03 21:28  Hello_wshuo  阅读(49)  评论(0编辑  收藏  举报