• Linux基础第六课——grep|awk|sort|uniq


    管道符 |

    前面的输出作为后面的输入
    

    grep 可以理解为正则表达式

    grep [参数] 文件名 
     -c 打印符合要求的行数 
     -v 打印不符合要求的行 
     -n 在输出符合要求的行的同时连同行号一起输出 
     -i 忽略大小写 
     [0-9]
     ^
     grep -c 'root' /etc/passwd
     grep -nv 'root' /etc/passwd
     grep '[0-9]' 文件名 
     grep '^#' -v test.py 
     yhq@yhq-virtual-machine:~$ grep 'r..o' /etc/passwd
    systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
    kernoops:x:116:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
     grep 'o{2}' /etc/passwd #匹配出现2次 o 的 
     
     
    

    wc 文件内容的统计

    -l 统计你有多少行 
    -w 统计有多少个单词 
    
    yhq@yhq-virtual-machine:~$ cat /etc/passwd | wc -l #统计有多少个用户 
    46
    

    awk 流式编辑器 针对文档的行去操作 一行一行的去执行

    yhq@yhq-virtual-machine:~$ head -n 2 /etc/passwd | awk -F ':' '{print $1 $7}'
    root/bin/bash
    daemon/usr/sbin/nologin
    
    -F 指定分隔符 
    $0 代表所有的列 
    $1 代表 第一列
    
    yhq@yhq-virtual-machine:~$ head -n 2 /etc/passwd | awk -F ':' '{print $1"~"$7}' 指定字符串连接符 一定要双引号 
    root~/bin/bash
    daemon~/usr/sbin/nologi
    
    awk /root/ /etc/passwd #匹配root 
    awk -F ':' '$1 ~/root/' /etc/passwd #匹配第一列式root 的 那一行 
    
    awk -F ':' '$3==0' /etc/passwd #匹配第三列等于0的哪一行 
    
    awk -F ':' '$7!="/usr/sbin/nologin"' /etc/passwd
    
    awk -F ':' '$3 < $4' /etc/passwd
    
    awk -F ':' '$3 > 100 || $7 == "/usr/sbin/nologin"' /etc/passwd 
    awk -F ':' '$3 > 5 && $3 < 7' /etc/passwd
    awk -F ":" '{(total=total+$3)};END{print total}' /etc/passwd #对所有行第三列求和 
    head -n 3 /etc/passwd | awk -F ':' '$1 == "root"'
    
    

    uniq unique 删除重复的行 跟sort 命令 组合使用

    sort -n -t ":" -k 1 | uniq -c

    -c 在每行前面加上出现的次数 
    -d 只输出重复的行 多行只输出一行
    -D 只输出重复的行 多行有几行输出几行 
    -i 忽略大小写 
    
    yhq@yhq-virtual-machine:~$ sort test.txt | uniq -c 
     1 apple
     2 banana
     1 caomei
     1 huaguang
     1 juhua
     1 orange
    yhq@yhq-virtual-machine:~$ sort test.txt | uniq -d 
    banana
    yhq@yhq-virtual-machine:~$ sort test.txt | uniq -D
    banana
    banana
    
    

    sort 排序 默认按照首字母排序

    -n 按照数值排序 
    -t 指定分割符 
    -k 指定第几列 
    -r 逆向排序
    
    
    cat /etc/passwd | sort -n -t ":" -k 3 -r 按照 :分割符 指定第三列 纯数值排序 逆向排序 
    

    面试题 : 查找你最常使用的10条命令

     history |awk '{print $2}'| sort |uniq -c|sort -n -k 1 -r|head -n 10
    
    
  • 相关阅读:
    学电脑入门与提高
    Autodesk Revit Architecture 2014官方标准教程
    Photoshop移动UI界面设计实用教程 全彩超值版
    中文版SQL Server 2000开发与管理应用实例
    Excel2016数据处理与分析从新手到高手
    云计算(第三版)
    无线局域网搭建与管理
    R语言数据挖掘
    Spring 3.0就这么简单
    SVN使用教程总结
  • 原文地址:https://www.cnblogs.com/hankleo/p/10461903.html
Copyright © 2020-2023  润新知