sed, a stream editor,来自贝尔实验室
这个实验室大家都不陌生吧,百度上说自1925年以来,贝尔实验室共获得两万五千多项专利,现在,平均每个工作日获得三项多专利!
sed主要用于在线文档编辑,替换统计等功能。本文案例在mac下使用gsed学习(个别命令可能会有差异)
一、安装
1)linux/unix默认安装,mac下sed可能很多命令格式不一样,可以brew install gsed
2)查看sed命令,sed -h || man sed ,当然 mac下是man gsed.
二、sed输出文件行数
1)sed输出指定行数
#输出第一行内容
gsed -n '1p' line.txt
#输出最后一行内容
gsed -n '$p' line.txt
#输出第一行到到第5行内容
gsed -n '1,5p' line.txt
(1)-n 是选项参数 输出结果的意思 还有很多
-e command, --expression=command 允许多台编辑。
-h, --help 打印帮助,并显示bug列表的地址。
-n, --quiet, --silent 取消默认输出。
-f, --filer=script-file 引导sed脚本文件名。
-V, --version 打印版本和版权信息。
(2)p是命令参数 打印的意思 还有很多 常用的有
d 从模板块(Pattern space)位置删除行
s 从模板块(Pattern space)位置替换
e 从模板块(Pattern space)位置编辑 (不会更改原内容)
a 从模板块(Pattern space)位置追加
i 从模板块(Pattern space)位置插入 (更改原内容)
g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容
w 将所选的行写入文件
1)sed输出多行
#输出第一行、第二行内容
gsed -n '1,2p' line.txt
三、sed删除文件行数
1)sed删除指定行数
#删除第10行
gsed -i '10d' line.txt
#删除最后一行
gsed -i '$d' line.txt
四、sed替换文件
1)字符串替换
#将Line替换成a
gsed -i 's/Line/a/g' line.txt
五、附加说明
学习sed实在让人没耐心,感觉命令复杂不清,其他命令也可以代替。如有兴趣或想多学可以去官方查看手册:https://www.gnu.org/software/sed/manual/sed.html
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。