zoukankan      html  css  js  c++  java
  • sed

    sed命令详解

    linuxdic

    cdf ds

    #!/bin/bash
    #2018-06-30 06:59:38
    # sed Stream Editor文本流编辑
    #sed命令的语法格式:
    #sed的命令格式: sed [option] 'sed command' filename
    #sed的脚本格式:sed [option] -f 'sed script' filename
    
    #sed命令的选项(option):
    #-n :只打印模式匹配的行.
    #-e :直接在命令行模式上进行sed动作编辑,此为默认选项
    #-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作
    #-r :支持扩展表达式((默认是基础正规表示法语法))
    #-i :直接修改文件内容,而不是输出到终端。
    
    #sed command: [n1[,n2]]function
    #n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 1020 行之间进行的,则『 10,20[动作行为] 』
    #function:
    #a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~(可以理解为append)
    #i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    #c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
    #d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
    #p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~,即只打印匹配的行.
    #s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
    
    #  sed 后面接的动作,请务必以 '' 两个单引号括住喔!
    echo "删除第二行到第4行."
    nl ips.txt | sed '2,4d' | head -n 5
    
    echo "删除第二行到最后一行"
    nl ips.txt | sed '2,$d' | head -n 5
    
    echo "删除第4行.如果4行是空的,会往后找到非空行,补充到第4行."
    nl ips.txt | sed '4d' | head -n 5
    
    echo "在第二行后(亦即是加在第三行)加上『drink tea?』字样!"
    nl ips.txt | sed '2a drink tea' | head -n 5
    
    echo "要在第二行前"
    nl ips.txt | sed '2i drink tea' | head -n 5
     
     echo "如果是要增加两行以上,在第二行后面加入两行字,例如『Drink tea or .....』与『drink beer?』"
     echo "每一行之间都必须要以反斜杠『  』来进行新行的添加喔"
     nl ips.txt | sed '2a Drink tea or .....
    drink beer?' | head -n 5
    
    
     

    sed -in 's/^#//g' tmp.txt 取消全部的#注释。

    sed -in '4s/^#//g' tmp.txt 取消第4行的#注释。

    sed -in 's/^/#/g' tmp.txt 全部添加#注释。

  • 相关阅读:
    队列的顺序存储表示---数组实现
    栈的应用---用栈计算逆波兰表达式
    栈的应用--栈用作判断平衡符号,[()]对的,[(])错的
    栈ADT的数组实现
    栈ADT的链表实现
    链表的游标实现
    链表应用之基数排序
    多项式ADT的数组实现
    ListView13添加2
    计算器的简单编写,熟悉访问器,重载
  • 原文地址:https://www.cnblogs.com/guxuanqing/p/9245987.html
Copyright © 2011-2022 走看看