• sed


    sed:编辑器, 主要处理没有规律的文本

    正则表达式:
    基本元字符:
    匹配除换行符之外的任意单个字符: .
    匹配零次或多次它前面的一个字符:*
    匹配中括号中任意一个字符:[...]
    正则表达式的第一个字符,在中括号里表示取反:^
    正则表达式的最后一个字符:$
    匹配前置字符出现n和m之间的任意次数:{n,m}
    匹配前置字符出现n次:{n}
    匹配前置字符至少出现n次:{n,}
    (注:以上三个在扩展元字符中需要去掉)
    转义字符:

    扩展元字符:
    匹配一次或多次它前面的一个字符:+
    匹配零次或一次它前面的一个字符:?
    正则表达式的分组:()
    匹配前面或后面的正则表达式(只匹配其中的一个):|

    sed:必须用//包裹起来

    如;sed 's/旧字符串/新字符串/' 需要替换的文件
    s处的函数:
    a表示向该行后面插入,如'2a xx'就是在第二行后插入'xx'
    i表示向该行前面插入,如'2i xx'就是在第二行前插入'xx'
    c表示替换该行,如'3c xx'就是把第三行的内容替换成'xx'
    d表示删除某行
    r将r后面文件的内容读入到后面文件中某一行,如:'2r a' b,将a中的内容读入到b的第二行后
    最后/后的函数:
    n表示替换第n次出现的字符串,(取值范围1-512)
    g表示替换所有匹配上的字符串
    p打印模式空间的内容
    w[file]写入到file文件中
    &表示前面要替换的字符串
    表示回调前面要替换的字符串,最多9个标签,与正则的分组配合使用
    -f [sed脚本文件] [被处理的一个或多个文件]
    -n 不打印模式空间的内容
    -i 后面紧跟名字,备份修改前的文件
    -r 扩展正则必加的参数
    -e 多个命令一起执行的时候需要此选项,或用;号隔开

    定址:
    数字定址:
    定址单行用数字来表示,如:1s,2p,3d等
    从第一行到第三行:1,3
    匹配第二行后的四行:2,+4
    匹配从第四行到下一个3的倍数行:4,~3
    从第一行起每隔三行的行:1~3
    尾行:$
    除了第三行以外的行:3!
    正则定址:
    删除所有行:d
    只删除第三行:3d
    删除空行:/^$/d
    删除第五行到最后一行:5,$d
    删除从第一行到空行之间的行:1,/^$/d
    删除除了从第一行到第三行之外的行:1,3!d
    删除.TS和.TE标记的tbl输入:/^.TS/,/^.TE/d


    工作模式:模式空间和保持空间
    模式空间初始化为空,处理完一行后会自动输出到屏幕并清除模式空间。
    保持空间初始化为一个空行,也就是默认带一个 ,处理完后不会自动清除

    h 把模式空间内容覆盖到保持空间中
    H 把模式空间内容追加到保持空间中
    g 把保持空间内容覆盖到模式空间中
    G 把保持空间内容追加到模式空间中
    x 交换模式空间与保持空间的内容
    例:sed '{1h;2,3H;4G}' test
    sed '{1h;2x;3g;$G}' test
    颠倒输出:sed '1!G;h;$!d' rev.txt

  • 相关阅读:
    ASP.NET控制cookie
    asp.net中Cookie的用法
    乱码问题
    JSP批量删除复选框选中记录
    JSP中根据时间查询
    关于<c:if>没有<c:else>解决方案
    Div
    Apache PIO 操作Excel
    将查询到的数据存到excel并下载
    做一个超链接,打开一个新窗口而保留原来的窗口
  • 原文地址:https://www.cnblogs.com/super-sos/p/8906521.html
Copyright © 2020-2023  润新知