Awk

比較文本文件中的數字,如果滿足條件執行一個shell腳本

  • November 21, 2018

我有一個文本文件(由腳本創建),其中僅包含單行中的數字,例如“5 17 42 2 87 33”。我想用 50 檢查每個數字(範例),如果這些數字中的任何一個大於 50,我想執行另一個 shell 腳本。我正在使用一個 vumeter 程序,我的目的是在噪音水平很高時執行一個聲音辨識程序。所以我只想確定一個門檻值。

作為參數接受函式和input硬編碼文件名:

greaterthan() (
 threshold=$1
 set -- $(< input)
 for arg
 do
   if [ "$arg" -gt "$threshold" ]
   then
     echo execute other shell script
     break
   fi
 done
)

將其作為原始碼,或將其製作為腳本,然後將其命名為喜歡的greaterthan 50名稱或您喜歡的任何數字。

您可以使用 dc :

dc -f lefile -e '
 [ c                                         # clear the stack
 ! xmessage "a number is greater than 50" &  # pop up a message
 ] sr
 [ 50 <r                                     # if a number > 50 execute macro r
 z 0 <t                                      # if stack not empty execute macro t
 ] st
 lt x
'

引用自:https://unix.stackexchange.com/questions/483262