zoukankan      html  css  js  c++  java
  • 2018/03/23 每日一个Linux命令 之 sed

    官方定义:

      Linux sed命令是利用script来处理文本文件。

      sed可依照script的指令,来处理、编辑文本文件。

      Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

    --

    介绍动作属性-需要时回来查看就可以,不需要死记硬背

      a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

      c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

      d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;

      i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

      p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

      s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

    --

    文本的搜索并替换

      使用 sed 匹配文件内容,直接修改,注意这个会直接修改源文件。

      格式:

        sed -i "s/查找字段/替换字段/g" grep 查找字段 -rl 路径

      例如:

        1:  将文件1.txt内的文字“garden”替换成“mirGarden”

           # sed -i "s/garden/mirGarden/g" 1.txt   //sed -i 很简单
     
        2:  将当前目录下的所有文件内的“garden”替换成“mirGarden”
           # sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已
     
    --
    以行为单位的新增和删除
     
      在平常文本中,我一般是使用vim进行编辑文本,但是如果有一个100W行的文件,vim岂不是原地爆炸了,sed命令可以很好的执行这些动作
      例如
       
    将index.php 的内容列出并且列印行号,同时,请将第 2~5 行删除!
    
    #:~/demo$ nl index.php | sed '2,5d'
    

      

      sed 的动作 '2,5d', d就是删除动作,所以删除了2-5行,需要注意的是,sed后面接的动作,必须以 '' 号扩住。

    只要删除第 2 行
    
    #~/demo$ nl index.php | sed '2d'
    
    要删除第 3 到最后一行
    
    #~/demo$ nl index.php | sed '3,$d'
    

    --

    以行为单位的替换

      将第2-5行的内容取代成为『我是文本』呢?

    ~/demo$ nl index.php | sed '2,5c 我是文本'
    

      c 动作就是有取代的意思,透过这个方法我们就能够将数据整行取代了.

    --

    其他的用法会在之后慢慢工作和学习中补充。

  • 相关阅读:
    explicit
    boolalpha 和 noboolalpha
    C++ 头文件一览
    C++ I/O库总结
    Error:collect2:ld returned 1 exit status (总结)
    常用目录的作用
    硬盘分区与硬软链接
    POJ3694 Network(Tarjan双联通分图 LCA 桥)
    2016"百度之星"
    2016"百度之星"
  • 原文地址:https://www.cnblogs.com/25-lH/p/8631824.html
Copyright © 2011-2022 走看看