9.4 sed(上)
sed是一种流编辑器,它是文本处理中非常有用的工具,grep只能实现查找功能,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 ‘/^1/‘p test.txt --->打印所有以1开头的行
sed -n ‘/in$/‘p test.txt --->打印所有以in结尾的行
sed -e ‘1‘p -e ‘/222/‘p -n test.txt --->打印第1行和包含222的行
sed -n ‘/o\+t/‘p test.txt --->打印含有o..t的行
sed -nr ‘/o+t/‘p test.txt --->打印含有o..t的行,其中r选项类似与grep的-E选项,加上能免脱意字符
sed -nr ‘/root|sshd/‘p test.txt --->打印含有root或者sshd的行
9.5 sed(下)
sed -n ‘/bus/‘Ip test.txt --->打印含有bus(大小写均匹配)的行,其中I选项表示不区分大小写
sed ‘1‘d test.txt --->删除第1行(文件本身并没改变)
sed ‘/root/‘d test.txt --->删除包含root的行(文件本身并没改变)
sed ‘1,3‘d test.txt --->删除第1-3行(文件本身并没改变)
sed -i ‘1,3‘d test.txt --->删除文件的第1-3行(加上i选项后,文件会发生改变)
sed ‘s/[0-9]//g‘ test.txt --->删除文档中的所有数字
sed ‘s/[a-zA-Z]//g‘ test.txt --->删除文档中的所有字母
sed ‘1,10s/ot/to/g‘ test.txt --->将第1-10行中的ot替换成to
sed -r ‘s/([^:]+):(.*):([^:]+)/\3:\2:\1/‘ test.txt --->将以:分割的所有行每行的行首和行尾调换
sed -r ‘s/(.*)/aaa:&/‘ test.txt --->在所有行前加上字符串aaa:
原文地址:http://blog.51cto.com/13517946/2061702