sed命令实用案例精讲|开源人

时间 : 16-01-12 栏目 : Shell进阶 作者 : 老薛 评论 : 4 点击 : 2,354 次

#-----------------------------------------------------------------------------#

# create by xuekun

# date 2012-10-20

#http://www.bdkyr.com

# QQ:812711277

#==================================#

这是sed s后加@,#,$的案例
#------例1-------g替换所有的--------#
cat t1.log
/lib/ld-linux.so.2
#替换操作
sed -i 's@/lib/ld-linux.so.2@/tools/lib/ld-linux.so.2@g' t1.log
#检查
cat t1.log
/tools/lib/ld-linux.so.2
#------------------------#
#------例2---------------#
sed -i 's#/lib/ld-linux.so.2#/tools/lib/ld-linux.so.2#g' t2.log
#------------------------#
#------例3---------------#
sed -e 's$root$xuekun$g' test.log  #显示结果
sed -i 's$root$xuekun$g' test.log  #更改源文件
#================================================#
#------例4-把Jon的名字改成Jonathan.---------------#
sed -e 's/xuekun/root/' test.log  #替换一次
sed -e 's/xuekun/root/g' test.log #替换所有

#------例5-删除头三行-----------------------------#
sed -i '1,3d' test.log
#------------------------------------------------#
#------例6-显示5-10行-----------------------------#
[xuekun@admin-001 sed]$ sed -n '5,10p' test.log
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
#------------------------------------------------#
#------例7-删除包含nologin的行.----------------------#
[xuekun@admin-001 sed]$ cat 123.log
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
[xuekun@admin-001 sed]$ sed -e '/nologin/d' 123.log #删除操作
halt:x:7:0:halt:/sbin:/sbin/halt
news:x:9:13:news:/etc/news:
#------------------------------------------------#
5.显示所有符合条件的行
[xuekun@admin-001 sed]$ cat 123.log
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
[xuekun@admin-001 sed]$ sed -n '/\:1[1-2]\:/p' 123.log #查找符合条件:1[1-2]:的行
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
#------------------------------------------------#
6.把三个星号(***)添加到以Fred开头的行
sed -e '/^Fred/s/Fred/***&/' datafile
#----2011-10-12实例:---------------------------#
在包含192.168.11段Ip的行前加入#
sed -i '/192.168.11/s/^/#/' rc.local-20111012
#----------------------------------------------#
7.用JOSE HAS RETIRED取代包含Jose的行
sed -e '/jose/s/.*/JOSEHASRETIRED/g' datafile
8.把Popeye的生日改成11/14/46
sed -e '/Popeye/s/[1-9]*\/.*\/.*:/11\/14\/46:/' datafile
#--------删除所有空白行--------------------------------------#
sed -e '/^$/d' datafile
#--------删除example文件的最后一行---------------------------#
sed -i '$d' example
#--------删除example文件所有包含test的行---------------------#
sed -i '/test/'d example
#--------从shell向sed传值-----------------------------------#
要从命令行向sed传值,值得注意的是用双引号,否则功能不执行。
host_s=maya-002
sed -i "s/$HOSTNAME/$host_s/" /etc/hosts #将hosts中的主机名改为maya-002

本文标签

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/shell/1138.html

sed命令实用案例精讲|开源人:目前有4 条留言

  1. 板凳
    冷酷的云
    Post: 2017-12-26 上午11:11

    删除空行例子
    [test@centos6 ~]$ cat 1.log
    192.168.15.201

    192.168.15.221

    192.168.15.15

    192.168.15.113

    192.168.15.120

    192.168.15.102
    [test@centos6 ~]$ sed -e ‘/^$/d’ 1.log
    192.168.15.201
    192.168.15.221
    192.168.15.15
    192.168.15.113
    192.168.15.120
    192.168.15.102
    [test@centos6 ~]$ sed -i ‘/^$/d’ 1.log
    192.168.15.201
    192.168.15.221
    192.168.15.15
    192.168.15.113
    192.168.15.120
    192.168.15.102

    • 老薛
      老薛
      Post: 2017-12-26 上午11:14

      超赞!!

  2. 沙发
    冷酷的云
    Post: 2017-12-26 上午11:12

    [test@centos6 ~]$ sed -i ‘/^$/d’ 1.log
    [test@centos6 ~]$ cat 1.log
    192.168.15.201
    192.168.15.221
    192.168.15.15
    192.168.15.113
    192.168.15.120
    192.168.15.102

    • 老薛
      老薛
      Post: 2017-12-26 上午11:14

      赞,直接给出了实际案例!!!

随便看看

4