zoukankan      html  css  js  c++  java
  • 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 (符合条件的全部都替换)

  • 相关阅读:
    linux ssh 免密码登录
    Emacs Org Mode学习
    Emacs Org Mode学习
    java--for循环,一个分号的区别
    java--for循环,一个分号的区别
    【JVM.6】虚拟机类加载机制
    【JVM.5】类文件结构
    【JVM.4】调优案例分析与实战
    【JVM.3】虚拟机性能监控与故障处理工具
    【JVM.2】垃圾收集器与内存分配策略
  • 原文地址:https://www.cnblogs.com/godlove/p/11479924.html
Copyright © 2011-2022 走看看