有什麼方法可以在文件中搜尋超過 100 天的正常運行時間嗎?

有什麼方法可以在文件中搜尋超過 100 天的正常運行時間嗎?

有什麼方法可以透過 Linux Bash 命令在檔案中搜尋大於 100 天的正常運行時間嗎?

例如,file1包含:

Uptime is 172 days

Uptime is 562 days

Uptime is 30 days

downtime is 197 days

我可以使用什麼命令來獲得以下輸出:

Uptime is 172 days

Uptime is 562 days

答案1

這是一個簡單的awk解決方案:

awk '$1 == "Uptime" && $3 > 100 {print}' file1
Uptime is 172 days
Uptime is 562 days

答案2

……以及更複雜一點的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
Uptime is 172 days
Uptime is 562 days

答案3

以及grep使用擴展正規表示式的解決方案:

grep -E 'Uptime is [[:digit:]]{3}' uptime | \
  grep -Ev 'Uptime is 100'

這將找到「Uptime is」字串,後面跟著至少 3 位數字,並丟棄100後跟 End-of-line 的確切數字。

答案4

從我的評論轉換。

一起使用grepawk

grep "Uptime" file1 | awk '$3 > 100 {print}'

尋找“Uptime”,file1然後查看第三列,如果大於 100,則列印。

相關內容