美文网首页
LFCS系列笔记之流数据处理

LFCS系列笔记之流数据处理

作者: 风Boy | 来源:发表于2016-09-05 23:32 被阅读57次

    LFCS是Linux Foundation Certified Sysadmin的简评,意思是linux基金会认证系统管理员。目的就是帮助广大Linux爱好者拥有管理系统的能力。

    Paste_Image.png

    处理Linux中的文本流

    先来了解两个数据流的符号:>(重定向)和 | (管道)。>会静默的覆盖或者创建文件,一般用于文件中,而 | 则是用在命令与命令之间。

    Sed--流编辑器

    每当字符想要替换的时候,我们都应该想到这个命令。所以基本语法:

    sed 's/code1/code2/g' filename
    

    语法中s表示替换开始,g(globe)表示全局替换,因为流处理都是按行来处理的,假如没有g结尾,那么sed会认为之处理每行的第一code1。
    实战讲解1:我们知道/var/log/messages里面记录了系统的报错,很多时候我们需要按照日志来查询信息,所以我要查询9月4日的系统报错日志:

    sed -n 's/^Sep  4/p'  /var/log/messages
    

    p为打印的意思,-n表示只打印出我们选出的行。

    实战讲解2:打印出配置文件中的有用行:

    sed -n '/^#\|^$/d' filename
    

    d表示删除。

    sort和uniq

    sort对文本进行排序,uniq删除相邻的重复的行。
    实战讲解sort:我们想要统计/var下哪几个文件夹站的内存大:

    du -sch /var/* | sort -hr
    

    du -sch表示查看各个目录的大小,sort -hr表示按大道小排序。
    实战讲解uniq: 统计/var/log/messages每天记录的日志个数:

    cat /var/log/message|uniq -c -w 6
    

    -c表示在每一行的开头显示个数,-w 6希望我们能记住,表示通过前6个字符来判断有没有重复的,而-w 6在日志文件中一般表示天,同理-w 3 表示月,-w 9表示小时,-w 12 表示分钟,-w 15表示秒。

    tr 从标准输入中转化字符并且写入标准输出中

    实战讲解:很多时候我们会理由分隔符去提取数据,但是有时候分隔符并不是很好找,我们可以用tr命令来压缩空格,对面两个命令结果

    ls -l
    ls -l| tr -s ' '
    

    小结

    我们可以用以上简单的流控制命令去获得一些我们想要的东西,例如我们想知道root用户登录的IP并且排序,可以这样:

    last|grep root|tr -s ' '|cut -d' ' f1,3|sork -k2|uniq
    

    相关文章

      网友评论

          本文标题:LFCS系列笔记之流数据处理

          本文链接:https://www.haomeiwen.com/subject/sxhkdttx.html