每天一个linux命令——sed

来源:互联网 发布:作弊大师软件下载 编辑:程序博客网 时间:2024/05/17 22:04

sed:是一个流编辑器,非常擅长处理行文本文件,处理时,把当前的行存储在临时缓冲区,成为“模式空间”,处理完成后将缓冲区的内容送往屏幕,接着处理下一行,直到文件末尾。文件内容没有改变,除非使用重定向。

替换操作

sed 's/需要替换的部分/替换成的部分/' file

root@ubuntu:~/shell# cat file.txt 
bookss book
bookss book
bookss book
table

源文件如图:

root@ubuntu:~/shell# sed 's/book/BOOK/' file.txt  将book替换成BOOK。替换第一个匹配的部分
BOOKss book
BOOKss book
BOOKss book
table

root@ubuntu:~/shell# sed 's/book/BOOK/g' file.txt   后面接[number]g表示,从每行第几个匹配的位置开始替换。默认是从第一个匹配到的到本行最后
BOOKss BOOK
BOOKss BOOK
BOOKss BOOK
table

sed '/^$/d' file  删除空白行。后接d代表删除

sed '2,$d' file 删除第二行到最后一行

sed '$d' file  删除最后一行

\w\+ 代表每一个单词。

echo this is a test line |sed 's/\w\+/[&]/g'  将每个单词替换成[单词],&代表前面匹配到的每个内容

\(……\)里面填写的是需要操作的内容。echo this is digit 7 in a number|sed 's/digit \([0-9]\)/\1' 将替换的内容,替换成第一个括起来的内容。即将digit 7 替换成7.、1代表第一个\(..\)括起来的内容,同理\2,是第二个括起来的。

sed 命令非常强大,这里只是作为初学者简单的学习了一下,还有更多功能,以后接触到在继续了解。


0 0