• Linux中grep/awk/sed简单使用


    1.grep

      查询日志文件api.log中匹配的关键词前两行和后3行内容追加到log.txt末尾;

       grep keyword -B 2 -A 3 api.log >>log.txt 

    2.awk

    awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。

    通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。

    awk使用场景如下:通过crontab定时任务监控cpu缓存大小,自动清理缓存。

     clearBuffCache.sh脚本如下,添加到crontab中即可(crontab -l:查看crontab;crontab -e:编辑crontab):

    Mem=$(free -m | awk 'NR==2' | awk '{print $6}') #NR==2是取第二行的意思 或者 free -m|grep Mem |awk '{print $6}'
    if [ $Mem -lt 400 ];
    then
    echo "Service memory capacity is normal!" > /dev/null
    else
    sync
    echo "1" > /proc/sys/vm/drop_caches #清理PageCache,释放页缓存
    echo "2" > /proc/sys/vm/drop_caches #释放dentries和inodes,清空文件节点缓存和目录项缓存
    echo "3" > /proc/sys/vm/drop_caches #清空1和2所有内容的缓存
    sync
    fi
    

    3.sed

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。

    sed使用:  

    #将test.txt文件中所有“hello”字符串替换为"Hello"
    sed -i 's/hello/Hello/g' test.txt 
    #删除匹配行
    sed -i '/匹配字符串/d'  filename #包含匹配字符串的行会被删除
    

      

     

      

  • 相关阅读:
    QT之sqlite连接
    QT之QCustomPlot(二)
    QT之QCustomPlot(一)
    Qt第三方库QCustomPlot——QCustomPlot解读
    C++ 头文件系列(sstream)
    C++ 头文件系列(streambuf)
    C++ 头文件系列(iostream)
    C++ 头文件系列(ostream)
    C++ 头文件系列(istream)
    C++ 头文件系列(ios)
  • 原文地址:https://www.cnblogs.com/itfeng813/p/14734343.html
Copyright © 2020-2023  润新知