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