zoukankan      html  css  js  c++  java
  • sed

    sed(stream editor),通常用来过滤文本,通常用于处理其他命令的输出和文本文件。对每行执行命令。

    示例

    选项 -n 静默模式

    # ls -l | sed # 有输出
    # ls -l | sed -n #无输出

    命令 p 打印匹配行

    ls -l | sed -n '/^-/p'

    命令 d 删除行

    # ls -l | sed '2d'  #删除第二行
    # ls -l | sed '2,10d'  #删除2到10行
    # ls -l | sed '/^-/d'  #删除匹配以-开头的行,使用正则表达式匹配行

    命令 a 追加行

    # ls -l | sed '2a11111111'

    命令 i 插入行

    # ls -l | sed '2i11111' #注意Mac下需要换行

    选项 -i 修改读取的文件

    # sed -i 's/aaa/bbb/g' kkk #kkk文件的内容被修改

    选项 -e (连续)编辑模式

    # ls -l | sed -e '/^-/d' -e '/2018/d'

    命令 n 读取下一行,用n之后的命令处理新读入的行

    # echo -e "111
    222
    333
    444" | sed 'n;/111/p' #无输出
    # echo -e "111
    222
    333
    444" | sed 'n;/222/p' #输出222
    # echo -e "111
    222
    333
    444" | sed 'n;/333/p' #无输出
    # echo -e "111
    222
    333
    444" | sed 'n;/444/p' #输出444

    命令 N 读取下一行,用N之后的命令处理读入的两行

    # echo -e "111
    222
    333
    444" | sed 'N;/111/p' 
    111
    222
    # echo -e "111
    222
    333
    444" | sed 'N;/222/p' 
    111
    222
    # echo -e "111
    222
    333
    444" | sed 'N;/333/p' 
    333
    444
    # echo -e "111
    222
    333
    444" | sed 'N;/444/p'
    333
    444

    命令 w 写入文件

    # ls -l | sed -n 'w kkk'

    显示行号

    # ls -l | sed '=' | sed 'N;s/
    / /' #需要分开写了,等号用来显示行号,N追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码
  • 相关阅读:
    noi.ac 集合
    NOI2019 SX 模拟赛 no.5
    带花树草解
    UR#13 SRAND
    【51nod1847】 奇怪的数学题
    ●POJ 3237 Tree
    ●BZOJ 2049 [Sdoi2008]Cave洞穴勘测
    ●BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊
    ●POJ 2983 Is the Information Reliable?
    ●POJ 3378 Crazy Thairs
  • 原文地址:https://www.cnblogs.com/nuoforever/p/13893627.html
Copyright © 2011-2022 走看看