zoukankan      html  css  js  c++  java
  • shell-sed 常见的一些高级用法

    -n 取消默认输出(输出所有文本内容),-n只显示处理过的行
    -i 直接操作文件
    -f 使用sed脚本


    p 打印匹配的内容,通常与-n一起使用
    a 追加
    c 更改
    i 插入
    d 删除
    s 替换
    p 打印
    = 打印匹配的行号
    n 读取下一行
    r,w 读和写

    实例:
    一.删除操作,!为取反操作
    sed '2d' a.txt #删除第2行
    sed '2!d' a.txt #删除第2行以外的所有行
    sed '1,2d' a.txt #删除第1,2行
    sed '2,+1' a.txt #删除第2行及后面的一行
    sed '1~3d' a.txt #从第1行开始,每隔3行删除一行
    sed '$'d a.txt #删除最后一行
    sed '/^$/d' a.txt #删除空行
    sed '/aaa/d' #删除匹配行
    sed '/aaa|bbb/' #删除匹配行
    sed '1,10{/aa/d}' a.txt #删除1~10行中的匹配行
    sed '/aaa/,$d' #删除匹配行到最后一行


    二.插入新行
    a:插入当前行的后面一行,i:插入当前行的前面一行,c:更改行,下面以a为例
    sed 'atest' a.txt #在每行后面插入test
    sed '2atest' a.txt #在第2行后面面插入test
    sed '2!atest' a.txt #在除了第二行的每一行后面插入test
    sed '/hello/atest' a.txt #在匹配行后面插入test
    sed '$atest' a.txt #在最后一行后面插入test


    三.替换操作
    sed 's/aaa/bbb/' a.txt #替换每一行的第1个aaa为bbb
    sed 's/aaa/bbb/g' a.txt #替换每一行的所有aaa为bbb
    sed 's/aaa/bbb/2' a.txt #替换每一行的第2个aaa为bbb
    sed '1,10s/aaa/bbb/g' #替换第1行到第10行所有的aaa为bbb
    sed 's/^[0-9]/(&)/' a.txt #将数字加上一个(), &为匹配到的内容

  • 相关阅读:
    [BZOJ1565][NOI2009]植物大战僵尸
    [BZOJ1566][NOI2009]管道取珠
    [BZOJ4104][Thu Summer Camp 2015]解密运算
    [BZOJ1003][ZJOI2006]物流运输
    [BZOJ3790]神奇项链
    指纹模块原理_光学指纹模块原理
    Ubuntu 16.04无损分区大小调整工具Gparted
    16进制转换10进制
    Memory Ordering in Modern Microprocessors
    python 多态
  • 原文地址:https://www.cnblogs.com/xia-dong/p/11988770.html
Copyright © 2011-2022 走看看