• awk 一些题目


    1.1. 输出记录最多的IP

    [腾讯面试题]一个文本类型的文件,里面每行存放一个登陆者的IP(某些行是重复的),写一个shell脚本输出登陆次数最多的用户。

    Ip_input.txt的内容假设如下:

    219.217.49.14

    175.43.4.87

    87.48.98.1

    59.73.38.25

    219.217.50.14

    59.92.48.32

    219.217.49.14

    59.72.38.142

    59.73.38.25

    219.217.49.14

     

    #! /bin/bash

    # test.sh

    sort ip_input | uniq -c | sort | tail -1 | awk '{print $2}' 或者:

    sort ip_input | uniq -c | sort -r | head -1 | awk '{print $2}'

    uniq -c 选项。它的作用是将重复行去掉并且在每行的前面添加此行重复的次数

    sort命令的默认排序方式是升序,使用 -r 选项逆序排序结果,则出现次数最多的IP则排在了第一行

    1.2. 处理一下文件内容,将域名取出并进行计数排数,如处理:

    http://www.baidu.com/index.html

    http://ww.baidu.com/1.html

    http://www.baidu.com/2.html

    http://post.baidu.com/index.html

    http://mp3.baidu.com/index.html

    http://www.baidu.com/3.html

    http://post.baidu.com/2.html

    得到如下结果:域名的出现次数,域名

    4     www.baidu.com

    2     post.baidu.com

    1     mp3.baidu.com

     

    shell程序如下:

    方法一:

    #cat file | sed -e 's/http:////' -e 's//.*//'| sort | uniq -c | sort -nr | head -10

    sort -n   依照数值的大小排序。

     

    方法二:

    #awk -F/  '{print $3}' file|sort -r|uniq -c|awk '{print $1 " ",$2}'

    1.3. a.log文件中提取包含"WARNING""FATAL",同时不包含"IGNOR"的行,然后提取以":"分割的第5个字段.

    grep -E 'WARNING|FATAL' file|grep -v 'IGNOR'|awk -F: '{print $5}'

    1.4. shell环境中,如何查看远程Linux系统运行了多少时间?

    ssh user@被监控的主机ip "uptime"|awk '{print $3,$4}'

    1.5. 腾讯一shell试题.

    假设qq.tel文件内容:

    12334:13510014336

    12345:12334555666

    12334:12343453453

    12099:13598989899

    12334:12345454545

    12099:12343454544

    分类如下:

    [12334]

    13510014336

    12343453453

    ...........

    [12099]

    13598989899

    12343454544

    ............

    实现如下:

    cat qq.tel|sort -r |awk -F: '{if(tmp!=$1) {tmp=$1;print "["tmp"]"} print $2}'

    cat e | sort -r | awk -F: '{if(head!=$1){print $1;head=$1;} print $2} '

  • 相关阅读:
    火眼金睛算法,教你海量短文本场景下去重
    CynosDB技术详解——架构设计
    CynosDB技术详解——存储集群管理
    解决 "Script Error" 的另类思路
    Go 语言实践(一)
    Vue.js的复用组件开发流程
    MYSQL中的COLLATE是什么?
    Blending
    AlphaTesting
    Culling & Depth Testing
  • 原文地址:https://www.cnblogs.com/kilometerwine/p/9876006.html
Copyright © 2020-2023  润新知