zoukankan      html  css  js  c++  java
  • Shell-三剑客(sed)

    Shell-三剑客(sed)

    Sed 是Linux平台下的轻量级流编辑器.一般处理文本文件.

    需要注意的是vim也是处理文本文件的工具,它们俩最大的区别在于:

    sed不需要像vim一样打开文件,而是可以在脚本里面直接操作文档,所以大家将会发现它在Shell脚本里的使用频率是很高的.

    Sed的语法格式如下:

    sed  [-nefri]   [n1,n2]  动作

    第一部分: [ - n e f r i ]

    -n 是安静模式,只有经过sed处理过的行才会显示出来,其他不显示

    -e 表示直接在命令行模式上进行sed的操作.貌似是默认选项,不用写

    -f  将sed的操作写在一个文件里,用的时候 -f filename 就可以按照内容进行sed操作

    -r 表示使sed支持扩展正则表达式

    -i 表示直接修改读取的文件内容,而不是输出到终端.

    第二部分:[n1,n2]

    [n1,n2]表示选择要进行处理的行,不是必需的  10,20 表示在10~20行之间处理.

    第三部份:动作  (动作中的参数 a c d i p s g )动作最好用' '括起来,防止因空格导致错误

    a  表示添加,后接字符串,添加到当前行的下一行

    c  表示替换 后接字符串 用它替换n1到n2之间的行

    d  表示删除符合模式的行 它的语法为 sed  '/regexp/d'    / / 之间是正则表达式 模式在d前面 d后面一般不接任何内容

    i  表示插入  后接字符串 添加到当前行的上一行 

    p  表示打印 打印选择的莫个数据 通常与-n(安静模式)一起使用

    s  表示搜索 还可以替换 类似于vim里的搜索替换功能 

    例如: "1,20s/old/new/g" 表示将1~20行的old替换为new  g在这里表示处理这一行所有匹配的内容

    sed的基础实例如下:

    实例1  d  删除

    显示passwd内容 将2~5行删除后显示(注意sed只是输出终端内容,并没有修改文件本身内容.)

     实例2  a 添加  

    在第2行后面的一行加上"Hello,world"字符串,命令如下所示

     实例3  续航符 

    在第2行后面一行加上俩行字,例如: "this is first line !" 和"this is second line !"

    这里使用了续航符  

    实例4 替换 c

    将第2~5行的内容替换成"I am Macy" 

    实例5 

  • 相关阅读:
    java.lang.IllegalArgumentException: node to traverse cannot be null!
    c3p0连接池的使用
    eclipse插件
    eclipse字体颜色设置
    oracle增删改查
    resultMap / resultType
    oracle 序列 ,check约束
    JSP:一种服务器端动态页面技术的组件规范。
    js
    字体
  • 原文地址:https://www.cnblogs.com/wqx851/p/13053327.html
Copyright © 2011-2022 走看看