Linux学习笔记(二十七)sed

本文介绍SED流编辑器的基础使用方法及实例,SED是强大的文本处理工具,能配合正则表达式进行模式匹配与替换,适用于文件编辑、数据转换等场景。

sed
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

sed -n '5'p test.txt                             //输出第5行
 sed -n '1,5'p test.txt                          //输出1-5行
 sed -n '1,$'p test.txt                          //输出第一行到最后一行,$指最后一行
 sed -n '/root/'p test.txt                       //输出含有root的行
 sed -n '/root/'Ip test.txt                      //输出含有root的行,不区分大小写
 sed -n '/^1/'p test.txt                         //输出以数字1开头的行
 sed -n '/in$/'p test.txt                        //输出以in结尾的行
 sed -n '/r..o/'p test.txt                       //输出ro中间有两个字符的行
 sed -n 'oo*'p test.txt                          //输出o+o重复n次的行
 sed -e '1'p -e '/111/'p -n test.txt             //输出第一行和含有111的行

Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed

sed '1'd test.txt                                // 删除第一行(只是输出到屏幕,文件内容不变)
sed  -i '1'd test.txt                            //删除第一行 (文件内容改变)
head test.txt|sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'  以:分隔,将第一段和最后一段字符互换位置
sed -r 's/(.*)/abc:&/' test.txt   //在每一行前面增加abc:
 sed '1,3'd test.txt                             // 删除第1-3行
 sed '/oot/'d test.txt                           //删除有oot的行
 sed '1,2s/ot/to/g' test.txt                     //将前两行的所有ot替换为to
 sed 's#ot#to#g' test.txt                        //将所有的ot替换为to
 sed 's/[0-9]//g' test.txt                       //将所有数字替换为空
 sed 's/[a-zA-Z]//g' test.txt                    //将所有字母替换为空
 sed -r 's/(rot)(.*)(bash)/\3\2\1/' test.txt     //将开头是rot,结尾是bash的行中,rot与bash换位置
 sed 's/^.*$/123&/' test.txt                     //所有行前增加123
 sed -i 's/ot/to/g' test.txt                     //将ot改为to(改变文件内容)

Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed
Linux学习笔记(二十七)sed

转载于:https://blog.51cto.com/13569831/2086295

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值