• linux sed


    原始文件的内容:
    代码如下:
    [root@localhost ~]# cat file.txt
    hello world
    a:b:c -h -n
    a:b:c -h -n

    sed根据条件删除相关的行:
    代码如下:
    [root@localhost ~]# sed -i '/a:b:c -h -n/d' file.txt
    [root@localhost ~]# cat file.txt
    hello world

    sed根据条件进行相关内容的替换:
    代码如下:
    [root@localhost ~]# sed -i 's/hello/baidu/' file.sh
    [root@localhost ~]# cat file.sh
    baidu world

    http://www.jb51.net/article/34425.htm

    二、sed简介
    sed:是一个编辑器,是一个强大的文件处理工具。

    sed作用:用来替换、删除,更新文件中的内容。sed能自动处理一个或多个文件。

    sed原理:sed以文本的行为单位进行处理,一次处理一行内容。首先sed把当前处理的行存储在临时缓冲区中(称为模式空间pattern space),接着处理缓冲区中的行,处理完成后,把缓冲区的内容送往屏幕。sed处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示,这样不断的重复,直到文件末尾。处理完文件的最后一行后,sed便结束运行。

    因为sed是对文件中每行在临时缓冲区中的副本进行编辑,所以原文件内容并没有改变,除非重定向输出。

    三、sed命令介绍
    #sed [-nefri][命令]

    参数说明:

    -i:直接修改文件,终端不输出结果。

    -n:使用安静(slient)模式,取消默认输出。sed默认会将所有来自stdin的数据输出到终端上。但如果加上-n参数后,不自动打印处理后的结果,只是默默的处理,只有经过sed特殊处理的那一行才被列出来。

    -e: --expression直接在命令模式上进行sed的动作编辑。sed -e '...' -e '...' -e '...'

    -f:指定sed脚本的文件名。

    -r:sed动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)

    命令说明:[n1][n2]命令

    n1,n2:表示行号,该参数可选,一般表示希望操作的行数,可以是数字,正则表达式或二者混合。

    用逗号分隔的两个行数表示这两行为起止的行的范围。如1,3表示1,2,3行,美元符号($)表示最后一行。如何没有指定地址,sed将处理输入文件的所有行。地址通常的写法有:n;n,m;n,$。举例,如果我的操作是需要在3到5行之间进行的,则【3,5,[动作行为]】。

    命令:

    a:新增,在当前行的下一行追加一行文本。

    i:插入,在当前行的上一行插入一行文本。

    c:替换,以行为单位进行替换,c的后面可以跟字符串,用这些字符串取代n1,n2之间的行。

    d:删除,从模式空间删除一行。

    p:打印,打印模式空间的行。通常p会与参数【-n】一起使用。

    s:替换,通常s命令可以搭配正则表达式!例如1,20s/old/new/g。

    http://www.cnblogs.com/starof/p/4181985.html

  • 相关阅读:
    js中disabled属性
    ajax 失焦点局部刷新 判断是否存在
    java 常见异常总结
    struts2+spring+hibernate 分别是做什么?
    武汉·骑行·摄影
    [转]基于粒子滤波的物体跟踪
    [转]Chrome插件:下载YouTube视频
    windows下GSL的配置
    图像处理和计算机视觉中的经典论文
    终于在我电脑上跑通ZK大神给的TLD代码了
  • 原文地址:https://www.cnblogs.com/softidea/p/4023976.html
Copyright © 2020-2023  润新知