运维测试;shell脚本或python : 统计某个⽂件中IP地址出现的次数,从⾼到低排序

shell脚本或python : 统计某个⽂件中IP地址出现的次数,从⾼到低排序 # ⽂件格式如下:

ip: 10.10.10.1:1080

ip: 10.10.10.2:1080

ip: 10.10.10.4:2050

ip: 10.10.10.2:1020

2. 我想从file1读取命令的所有输⼊,将所有输出直接输出到file2,将错误读取到⽂件3,我该如何实现?

3. 知道Linux的哪些环境变量,怎么查看与修改,都⽤什么⽤?

4. Linux的 ls -l 命令,最左侧的 drwxr-xr-x 等都是什么意思?如何更改所有权和权限?

5. ⽤ shell 写⼀个斐波那契数列,输⼊是 N,输出是它的第 N 项。N < 50。 斐波那契数列:每⼀项都是前两项之和,不计第0项

1 1 2 3 5 8 13 21 34 55 89 ...

示例:

sh fib.sh 10

输出:

55

答:

1、用Python编写统计IP地址出现次数并排序的脚本

from collections import Counter

def sort_ips_by_frequency(file_path):
    ip_counter = Counter()
    with open(file_path, 'r') as file:
        for line in file:
            ip = line.strip().split(':')[1]
            ip_counter[ip] += 1
    
    sorted_ips = sorted(ip_counter.items(), key=lambda x: x[1], reverse=True)
    for ip, count in sorted_ips:
        print(f"{ip}: {count}")

file_path = "your_file_path.txt"
sort_ips_by_frequency(file_path)

2、读取命令的所有输入并将输出分别输出到两个文件的脚本:

#!/bin/bash

# 从file1读取命令输入
cat file1 | while read -r line; do
    # 将命令执行结果输出到file2,错误输出到file3
    $line > file2 2> file3
done

  1. Linux的环境变量可以通过printenv命令查看,也可以通过编辑.bashrc.bash_profile文件来修改。常见的环境变量包括PATHHOMEUSER等。修改环境变量时,可以使用export命令,例如export PATH=$PATH:/new/path

  2. ls -l命令的输出中,最左侧的部分是文件/目录的权限信息。以drwxr-xr-x为例,第一个字符表示文件类型,后面的九个字符表示文件权限。d表示目录,-表示文件,r表示可读,w表示可写,x表示可执行。如需更改文件所有权和权限,可以使用chmod命令和chown命令。例如,要将文件设置为所有者可读写、组可读、其他用户可读的权限,可以使用chmod 644 file_name
    二:用Shell编写斐波那契数列的脚本:
     

    #!/bin/bash

    fib() {
        if [ $1 -le 1 ]; then
            echo $1
        else
            echo $(( $(fib $(( $1 - 1 )) ) + $(fib $(( $1 - 2 )) ) ))
        fi
    }

    fib $1
    保存为fib.sh,然后运行sh fib.sh 10即可输出第10项的斐波那契数。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值