zoukankan      html  css  js  c++  java
  • Linux-命令-sed-awk-grep

    命令: sed [options] 流编辑器,对文件增删改查换, 三剑客老二

    注意 sed "s#正则##g"    : 第一个位置正则

    sed 后向引用, sed -n 's#()()#12#g'

    参数:

    -n: 取消默认输出

     -i: 原地修改 edit files in place

    -i.bak -i参数后加.bak后缀名可以备份被修改的文件

    -e: 多项编辑

    -r: --regexp-extended

                  use extended regular expressions in the script.

    功能:

    p: (print)打印

    e.g. sed -n '20,30'p ett.log  打印ett.log 中20-30行内容

    e.g. sed -n '$'p ett.log  打印ett.log 中最后一行内容,$是文件结尾

    s: 替换

    g: global

    组合: sed 's#{old}#{new}#g' file

    注意:输出的内容已经更改,但是文件本身内容没有更改

    y:替换,相当于tr

     

    q:quit 退出 例: sed '10q' /etc/passwd 处理到第10行退出

    sed 过滤方法:

    面试题: 把AFolder 下的所有 *b*.sh 的文件内容中 'xxxxx' 换成'yyyyy'.

    方法1: find AFolder -type f -name ' *b*.sh ' | xargs sed -i 's#xxxxx#yyyyy#g'

    方法2: sed -i 's#xxxxx#yyyyy#g' `find AFolder -type f -name '*b*.sh' `

     


    命令: awk [options]  过滤输出内容, 三剑客老大

    参数:

    e.g. 

     [root@ark log]# awk 'NR>19&&NR<31' ett.log

    解释:NR 是行号

    -F 指定分隔符

     

    awk match 方法


    命令: grep  [options] 三剑客老三

    参数:

    -A:除了显示匹配的一行之外,并显示该行之后的num行(after)

    -B:除了显示匹配的一行之外,并显示该行之前的num行(before)

    -C:除了显示匹配的一行之外,并显示之前和之后的num行

    -x, --line-regexp 精确匹配
    Select only those matches that exactly match the whole
    line

    e.g. grep -x 11 -A 10 ett.log 

    解释: ett.log中有1000行, 如果没有-x参数 ,则匹配 11,111,211,311,411 等等 之后的10行.

    而有-x参数,只精确匹配"11"(-x 之后的字符串) 所以结果只有从11开始后跟10行数据

    -v: 排除 -invert-match

    排除不需要的内容

    -i : 不区分大小写

    -------------------- 阑心而慧智,心静而致远. --------------------
  • 相关阅读:
    LPR之我见
    安装tensorflow2.2cpu的简洁方法
    anaconda安装keras
    redis 查看当前连接数
    2020 8 14
    docker安装jenkins
    使用docker安装gitlab
    提问:游戏测试与一般的软件测试的区别在哪里?
    “战斗天使”- 测试媛是如何崛起的?
    关系型数据库的几种常用主键
  • 原文地址:https://www.cnblogs.com/mirrorlake/p/7339873.html
Copyright © 2011-2022 走看看