码迷,mamicode.com
首页 > 其他好文 > 详细

sed 命令小结

时间:2015-08-31 19:50:20      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:option   编辑器   

技术分享

sed:过滤和转换的文本编辑器,主要是针对行的编辑,一次只能一行
        用法:sed 【option】 {script} filename
        参数:
                 -n:取消默认输出
                 -e:用于多重编辑
                 -i:用于改变替换的内容
                 -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作
                 -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)

                 s:是替换
                 g:是全部替换
                 p:打印输出
                 d:是删除指定,剩余输出
         例子:使用seq或者echo输出一个1-30的文件
                 # seq 1 30 >sed.txt
                 # echo {1..30}|tr " " "\n">sed.txt

删除:
                 # sed ‘1d‘ sed.txt   删除第一行
                 # sed ‘$d‘ sed.txt   删除最后一行
                 # sed ‘1,5d‘ sed.txt 删除第一到第五行

显示:
                 # sed -n ‘1p‘ sed.txt   显示第一行
                 # sed -n ‘$p‘ sed.txt   显示最后一行
                 # sed -n ‘1,5p‘ sed.txt 显示第一到第五行

显示查找行:
                 # sed -n ‘/^2/p‘ sed.txt  以2开头的行
                 # sed -n ‘/2$/p‘ sed.txt  以2结尾的行
                 # sed -n ‘/2/p‘ sed.txt   包含2的行

替换:
                 # sed -i ‘s/2/1/g‘ sed.txt     将所有的2替换成1
                 # sed -i ‘10s/10/11/g‘ sed.txt 指定第10行替换

**使用sed取出网卡的IP地址
          # ifconfig eth0|sed -n 2p|sed ‘s/^.*dr://g‘|sed ‘s/Bc.*$//g‘  这里是先取前部分,再取后部分
          # ifconfig eth0|sed -n 2p|sed -n ‘s#^.*dr:\(.*\)Bca.*$#\1#gp‘ 这里的括号必须转义

**使用find+sed替换所有的文件:
          # find . -type f exec sed -i ‘s/2/1/g‘ {} \;

          # find . -type f | xargs sed -i ‘s/2/1/g‘ ;


本文出自 “肖海” 博客,请务必保留此出处http://eveday.blog.51cto.com/10577430/1690216

sed 命令小结

标签:option   编辑器   

原文地址:http://eveday.blog.51cto.com/10577430/1690216

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!