zoukankan      html  css  js  c++  java
  • linux sed 命令的用法

    原文  http://blog.chinaunix.net/uid-24426415-id-77244.html

    -------------------------------------------------------------------------------

    初级入门

    sed工具是一种非交互式的流编辑器。默认情况下只会影响输出,不会改变输入。sed处理文档时是以行为单位的。功能有:删除、查找替换、添加、插入、从其他文件读取。

    其实这些功能看起来都可以用vim等编辑器来实现。那么,为什么要有sed呢?

    主要应用场景

    • 太过庞大的文本
    • 有规律的文本修改

    sed的命令格式

     sed [option] command [file ...]
    • 1
    • 1

    删除

    #删除第一行
    sed '1d' file
    • 1
    • 2
    • 1
    • 2

    注意,这只影响到输出流。如果想保存的话

    sed -i '1d' filename
    • 1
    • 1

    或者

    #输出到新文件
    sed '1d'>newfilename
    • 1
    • 2
    • 1
    • 2

    其中1d命令中,我们把1称为地址,这里指代的是第一行。 
    删除第一行到最后一行

    sed '1,$d' filename
    • 1
    • 1

    删除包含了某个pattern的行

    sed '/pattern/d' filename
    #例如
    sed '/^$/d' filename
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    查找替换

    #普通替换 将每行的第一个line替换成LINE
    sed 's/line/LINE/' filename
    • 1
    • 2
    • 1
    • 2

    sed ‘s/line/LINE/[number] 
    表示对这一行来说至多替换number个line,如果number为g,则全部替换


    字符转换

    现在还没有见过重要的用法
    • 1
    • 1

    插入文本

    #在第二行前插入一行
    sed '2 i insert_context' filename
    #在第二行之后插入一行
    sed '2 a insert_context' filename
    #在匹配的行之前插入一行
    sed '/pattern/i
    ew_word' filename
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    打印

    #只打印出第一行 ,不加n的话会默认输出每一行
    sed -n '1p' filename
    #只打印出被修改的一行
    sed -n 's/the/THE/p' filename
  • 相关阅读:
    C++各大有名库的介绍——C++标准库
    转换中文数字成为阿拉伯数字
    nutch 写一个indexingfilter插件
    nutch从网页中提取字段并索引_HtmlParseFilter
    java csv操作类
    简单的有限状态机
    getResource()和getResourceAsStream的路径问题
    eclipse修改整个工作空间的编码
    批处理启动tomcat
    java linq
  • 原文地址:https://www.cnblogs.com/oxspirt/p/7226817.html
Copyright © 2011-2022 走看看