所以我目前有一个名为 test2.txt 的文件,它显示了几个服务器的正常运行时间,如下所示。
box1.com returned RC 0
15:28pm up 14 days 16:05
box2.com returned RC 0
10:28:39 up 96 days
box3.com returned RC 0
15:28:39 up 180 days
box4.com returned RC 0
02:28am up 89 days 4:49
box5.com returned RC 0
02:28:40 up 19 days
理想情况下,我想删除输出中的多余内容 - 并让它返回一行,仅显示正常运行时间超过 90 天的服务器。
理想输出:
box2.com up 96 days
box3.com up 180 days
我还没有任何运气,一直尝试使用 awk 但没有成功。
使用awk:
#!/bin/bash
filename="test2.txt"
# Using awk to parse the file and extract server name, status, and uptime
awk 'BEGIN { RS="\n\n" } {
server_name = $1
status = $6
uptime = $7 " " $8
printf "%s: %s %s\n", server_name, status, uptime
}' "$filename"
它输出:
box1.com: up 14 days
box2.com: up 96 days
box3.com: up 180 days
box4.com: up 89 days
box5.com: up 19 days
然后你必须添加90天测试。
Hth