Linux学习笔记(二十七)sed

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习笔记(二十七)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的行

技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片

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的主要内容,如果未能解决你的问题,请参考以下文章

二十七sed

Java基础学习笔记二十七 DBUtils和连接池

Python学习笔记第二十七周(Bootstrap)

Python学习笔记(二十七)多进程 (进程和线程开始)

[傅里叶变换及其应用学习笔记] 二十七. 高维傅里叶变换,复习

Java学习笔记之二十七Java8中传多个参数时的方法