shell小tip(一直更新)

  • Question 1
    给定两个文件,一个文件里放着所有的ip记作all_ip,一个文件放着部分ip记 作part_ip
    需求:将all_ip文件中含有part_ip的ip全部清除。
    数据:链接: https://pan.baidu.com/s/1w-9kvbAJeEfIoJZKXCOs9Q 提取码: mnzp
    方法
    1. cat all_ip bu_ip | sort -n | uniq -c | awk '$1<2'|wc -l
    2. grep -v -x -f bu_ip all_ip | wc -l
    3. cat all_ip bu_ip | sort | uniq -u
    4. 使用python,将文件转换成列表格式,通过list.remove方法直接删除列表的对应项,使用len(list)查看最终的符合的列表长度是否吻合。

注: 为什么sort和uniq要成对使用?
答: uniq只能对相邻重复的行去重。sort可以让相同连续的行放在一起。

  • Question 2
    匹配一个文件中只含a的行
    例如: test的文件内容如下

    aaa
    abc
    a
    

    输出结果: a
    方法:

    1. grep -x a test
  • Question 3
    给定一个文件内容如下:

    2021/04/16 18:42:39 503
    2021/04/16 18:42:40 502
    2021/04/16 18:42:41 503
    2021/04/16 18:43:42 500
    2021/04/16 18:43:45 504
    2021/04/16 18:43:46 500
    2021/04/16 18:44:12 500
    2021/04/16 18:44:33 504
    2021/04/16 18:44:35 501
    2021/04/16 18:44:36 501
    2021/04/16 18:45:12 500
    

    找出每分钟下,返回状态码次数最多的值:
    cut -c -16,20- file | sort | uniq -c | awk 'BEGIN{a[$3]=0} {if($1>a[$3]){a[$3]=$1;s[$3]=$0}}END{for(i in s)print s[i]}'

  • Question 3
    AWK显示第一行和最后一行
    awk '{if(NR==1){print $1}}END{print $1}' file.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值