zoukankan      html  css  js  c++  java
  • linux三剑客之sed

    ---恢复内容开始---

        早就知道Linux有三剑客awk,sed,grep.

        今天就来说下sed,简单来说,这个命令简单来说就是用来按行处理文件的。

        首先,我们从问题入手,文件一般都需要什么操作呢?

        答:增删改查,和数据库操作差不多,但是对于数据库来说,每个元组都有对应的主键,但是文件没有,如果一定要确定某一行的内容的话,恐怕只能依赖于行号了。

        所以今天的问题就按照增删改查来进行扩展:

        一、首先说增:

        增的话有几种呢?

        1. 指定文件某一行行号插入一行内容

    sed '2i helloworld' test.txt

    注:该命令的意思是读取test.txt文件在第二行前面加上helloworld。2i就是插入第二行。

        2.指定文件某一行行号后面加一行内容

    sed '2a helloworld' test.txt

    注:该命令的意思是读取test.txt文件在第二行后面也就是第三行加上helloworld。2a就是追加到第二行后面。

        3.在文件最后追加一行内容

    sed '$a helloworld' test.txt

    注:这里$代表最后一行的意思,在最后一行加入helloworld。

        4.可能又一个思考,就是我们前面都只是加一行内容,但如果要是加入多行的内容呢?

        二、下面该说删了:

        1. 删除指定行号的内容

    sed '2d' test.txt

    注:删除第二行的内容

        2. 删除指定行号间的内容(前闭后闭)

    sed '2,4d' test.txt

    注:删除第二行到第四行的内容。

        三、接下来是改:

        1. 修改指定开头的内容

    sed 's/^r/a/' test.txt

    注:将所有r打头的都改为a打头的

        2. 全局修改某个字符串为XX

    sed 's/r/a/g' test.txt

        3. 修改指定行号的内容

    sed '2c helloworld' test.txt

        、接下来是查

        1. 查找某一个字符串出现的行

    sed -n '/games/p' test.txt

    注:显示文本中包含games的行

        2. 查找指定行号的内容

    sed -n '2p' test.txt

    注:显示第二行的内容

        3. 查找指定行号间的内容

    sed -n '2,5p' test.txt

    注:显示2到5行的内容。

    ---恢复内容结束---

        早就知道Linux有三剑客awk,sed,grep.

        今天就来说下sed,简单来说,这个命令简单来说就是用来按行处理文件的。

        首先,我们从问题入手,文件一般都需要什么操作呢?

        答:增删改查,和数据库操作差不多,但是对于数据库来说,每个元组都有对应的主键,但是文件没有,如果一定要确定某一行的内容的话,恐怕只能依赖于行号了。

        所以今天的问题就按照增删改查来进行扩展:

        一、首先说增:

        增的话有几种呢?

        1. 指定文件某一行行号插入一行内容

    sed '2i helloworld' test.txt

    注:该命令的意思是读取test.txt文件在第二行前面加上helloworld。2i就是插入第二行。

        2.指定文件某一行行号后面加一行内容

    sed '2a helloworld' test.txt

    注:该命令的意思是读取test.txt文件在第二行后面也就是第三行加上helloworld。2a就是追加到第二行后面。

        3.在文件最后追加一行内容

    sed '$a helloworld' test.txt

    注:这里$代表最后一行的意思,在最后一行加入helloworld。

        4.可能又一个思考,就是我们前面都只是加一行内容,但如果要是加入多行的内容呢?

        二、下面该说删了:

        1. 删除指定行号的内容

    sed '2d' test.txt

    注:删除第二行的内容

        2. 删除指定行号间的内容(前闭后闭)

    sed '2,4d' test.txt

    注:删除第二行到第四行的内容。

        三、接下来是改:

        1. 修改指定开头的内容

    sed 's/^r/a/' test.txt

    注:将所有r打头的都改为a打头的

        2. 全局修改某个字符串为XX

    sed 's/r/a/g' test.txt

        3. 修改指定行号的内容

    sed '2c helloworld' test.txt

        、接下来是查

        1. 查找某一个字符串出现的行

    sed -n '/games/p' test.txt

    注:显示文本中包含games的行

        2. 查找指定行号的内容

    sed -n '2p' test.txt

    注:显示第二行的内容

        3. 查找指定行号间的内容

    sed -n '2,5p' test.txt

    注:显示2到5行的内容。

  • 相关阅读:
    20年的Flash要退出舞台:当年哪个小游戏你最爱?
    一些实用但不为人知的Unix命令
    20145221 《Java程序设计》第九周学习总结
    20145221 《Java程序设计》实验报告四:Android开发基础
    20145221 《Java程序设计》实验报告三:敏捷开发与XP实践
    20145221 《Java程序设计》第八周学习总结
    Java实现:数据结构之排序
    20145221 《Java程序设计》第七周学习总结
    20145221 《Java程序设计》实验报告二:Java面向对象程序设计
    网络安全攻防学习平台
  • 原文地址:https://www.cnblogs.com/xiatianyu/p/linux-sed.html
Copyright © 2011-2022 走看看