• sed命令


    sed替换  stream editor 根据定位到到数据行修改数据,用于数据修改

     sed[addr]X[options]

    -e 表达式

    sed -n '2p' 打印第二行

    sed -n '/00:00:01/,/00:00:04/' /tmp/nginx.log  打印1-4之间的数据

    sed 's#hello#world#' 修改

    -i 直接修改源文件

    -E 扩展表达式

    --debug

    d 删除

    p 打印,通常结合 -n 参数

    s/正则/匹配的内容/[FLAGS]

    seq 11 21 | sed -n '/14/,/19/p'
    14
    15
    16
    17
    18
    19

    seq 11 21 | sed -n '2, 4p'
    12
    13
    14

    12 匹配的字段

    seq 100 110 | sed 's/..//'
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0

    seq 126 134 | sed -E 's/..(.)/1/g'
    6
    7
    8
    9
    0
    1
    2
    3
    4

    seq 126 134 | sed -E 's/(.)(.)./12/g'
    12
    12
    12
    12
    13
    13
    13
    13
    13

    seq 126 134 | sed -E 's/(.)(.)./1+2/g'
    1+2
    1+2
    1+2
    1+2
    1+3
    1+3
    1+3
    1+3
    1+3

    sed 's/hello/A/' test.txt 将文本文件中的hello替换为A,但是改的是模式空间的内容,原文件没有被修改

    sed -i 's/hello/A/' test.txt    添加了-i修改了原文件

    sed -i.bak 's/A/hello/' test.txt 防止替换错误,加上.bak可以多生成bak文件

    echo 123abc456 | sed 's#[2-9]#x#g' g全部替换  s#正则#结果#

    1xxabcxxx

     awk '{print $7}' /tmp/nginx.log | sed 's#[0-9]{1,}#*#g'  将IP地址后的0-9大于等于1及多个数字都替换为*

    /topics/*/replies/*/edit
    /topics/*?locale=zh-TW

     awk '{print $7}' /tmp/nginx.log | sed -e 's#[0-9]{1,}#*#g' -e 's#?.*##'  -e可以加上多个正则

    echo "cat dog cat dog" |sed 's/cat/wulala/' 替换的结果为:wulala dog cat dog

    echo "cat dog cat dog" |sed 's/cat/wulala/g'  替换的结果为:wulala dog wulala dog (符合条件的全部都替换)

  • 相关阅读:
    147-SpirngBoot指定编译那个文件的xml文件?
    146-springboot打war包设置
    145-sprinboot导入的内嵌jsp依赖是什么?
    mybatis中映射文件和实体类的关联性
    Quartz使用-入门使用(java定时任务实现)
    java SSLContext
    方法参数传递
    JSP写的图书管理系统
    JAVA---数组
    SpringBoot 2.x 后WebMvcConfigurationAdapter 过时
  • 原文地址:https://www.cnblogs.com/godlove/p/11479924.html
Copyright © 2020-2023  润新知