zoukankan      html  css  js  c++  java
  • Linux中sed使用

    Sed是stream editor(流编辑器)是操作,过滤和转换文本内容的强大工具。常用功能有增删改查,过滤,取行。

    增:

    追加文本到指定行后          a

    插入文本                            i

    例子:单行增加

    [root@localhost ~]# sed '2a 107,dandan' test.txt

    124567668

    dfgjkllkjhvkl

    107,dandan

    Adsfkadsjf

    [root@localhost ~]# sed '2i 107,dandan' test.txt

    124567668

    107,dandan

    dfgjkllkjhvkl

    adsfkadsjf

    一个是追加,一个是插入

    多行增加 换行

    [root@localhost ~]# sed '2i 107,dandan aasdfasdf' test.txt

    124567668

    107,dandan

    aasdfasdf

    dfgjkllkjhvkl

    adsfkadsjf

    企业案例:

    在我们学习系统优化时,有一个优化点:更改ssh服务远程登录的配置。主要的操作是在ssh的配置文件中加入下面五行文本

    1. Port 52113
    2. PermintRootLogin no
    3. PermitEmptyPasswords no
    4. UseDNS no
    5. GSSAPIAuthentication no

    删除指定行    d

    不指定几行,默认全部删除

    按行替换

    用新行取代旧行          c

    文本替换

    Sed -I ‘s###g’ #就是定界符

    如果没有g,就是不是全局替换,g是全局都会改变

    Sed -r使用扩展正则表达式,(.*) 1

    &做替换批量重命名文件

    [root@localhost ~]# cd /test
    [root@localhost test]# ls
    [root@localhost test]# touch stu_102999_{1..5}_finished.jpg
    [root@localhost test]# ls
    stu_102999_1_finished.jpg  stu_102999_3_finished.jpg  stu_102999_5_finished.jpg
    stu_102999_2_finished.jpg  stu_102999_4_finished.jpg
    [root@localhost test]# ls  *.jpg
    stu_102999_1_finished.jpg  stu_102999_3_finished.jpg  stu_102999_5_finished.jpg
    stu_102999_2_finished.jpg  stu_102999_4_finished.jpg
    [root@localhost test]# ls  *.jpg | sed -r 's#(^.*)_finished.*#mv & 1.jpg#g'
    mv stu_102999_1_finished.jpg stu_102999_1.jpg
    mv stu_102999_2_finished.jpg stu_102999_2.jpg
    mv stu_102999_3_finished.jpg stu_102999_3.jpg
    mv stu_102999_4_finished.jpg stu_102999_4.jpg
    mv stu_102999_5_finished.jpg stu_102999_5.jpg
    [root@localhost test]# ls  *.jpg | sed -r 's#(^.*)_finished.*#mv & 1.jpg#g' |bash
    [root@localhost test]# ls
    stu_102999_1.jpg  stu_102999_2.jpg  stu_102999_3.jpg  stu_102999_4.jpg  stu_102999_5.jpg

    查:

    输出指定内容  p 但是默认会输出2次匹配的结果,因此使用n取消默认输出

    [root@localhost ~]# sed '2p' test.txt 
    124567668
    dfgjkllkjhvkl
    dfgjkllkjhvkl
    adsfkadsjf
    [root@localhost ~]# sed -n '2p' test.txt 
    Dfgjkllkjhvkl
    2-3行
    [root@localhost ~]# sed -n '2,3p' test.txt 
    dfgjkllkjhvkl
    adsfkadsjf

    1~2p就是取1,3,5,奇数行显示所有奇数行

    命令的执行df -h == echo ‘df -h’ | bash

  • 相关阅读:
    GridControl主从表设置
    Asp.net Ajax框架教程
    实现类似百度下拉框自动匹配功能
    将一个DataTable分解成多个DataTable
    找不到可安装的ISAM ,asp.net读取数据丢失,解决的一列里有字符与数字的
    StringCollection FAQ [C#, BCL]
    从枚举的初始化说起 [C#]
    当多态遇上数组 ... [C++] (Rewritten)
    我并不是不闻不问![C#]
    当多态遇上数组 ... [C++, C++/CLI, C#]
  • 原文地址:https://www.cnblogs.com/huangchuan/p/11550437.html
Copyright © 2011-2022 走看看