轻松玩转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 &
其他
{} 里面可以写多条命令,命令之间用;分割
本文来自博客园,作者:Hello_wshuo,转载请注明原文链接:https://www.cnblogs.com/Hellowshuo/p/15622227.html