有什么方法可以在文件中搜索超过 100 天的正常运行时间吗?

Noo*_*oob 3 command-line text-processing

有什么方法可以通过 Linux Bash 命令在文件中搜索大于 100 天的正常运行时间吗?

例如,file1包含:

Uptime is 172 days

Uptime is 562 days

Uptime is 30 days

downtime is 197 days
Run Code Online (Sandbox Code Playgroud)

我可以使用什么命令来获得如下输出:

Uptime is 172 days

Uptime is 562 days
Run Code Online (Sandbox Code Playgroud)

pa4*_*080 6

这是一个简单的awk解决方案:

awk '$1 == "Uptime" && $3 > 100 {print}' file1
Run Code Online (Sandbox Code Playgroud)
Uptime is 172 days
Uptime is 562 days
Run Code Online (Sandbox Code Playgroud)

  • 可能也更简单 `awk '/Uptime/ && $3 > 100' file1` (3认同)

小智 5

...以及更复杂一点的bash解决方案:

while read -r a b c d; do
   [[ $a = Uptime && $c -gt 100 ]] && printf '%s %s %s %s\n' $a $b $c $d
done < uptime
Run Code Online (Sandbox Code Playgroud)
Uptime is 172 days
Uptime is 562 days
Run Code Online (Sandbox Code Playgroud)