2015-11-20 20 views
-2

在bash shell腳本中,搜索文件的最後10行中的單詞。如果找到了,做一個動作或做別的另一個動作在bash shell腳本中,搜索文件的最後10行中的單詞。如果找到了某個操作並執行其他操作

我要搜索「服務器已啓動」在log.out,如果找到了,需要 執行以下命令

service httpd start 
+1

嘗試用尾巴東西和grep – amdixon

+0

http://stackoverflow.com/help/how-to -ask – Jubobs

+0

我必須在log.out文件的最後10行中搜索「Server started」。如果找到了,需要執行以下命令「service httpd start」 – Ashik

回答

1

這你是如何做到這一點:

result=`tail --lines=10 log.out | grep "Server started"` 
if [[ "$result" == ""]]; then 
    ... 
else 
    ... 
fi 
0

你可以做的是tailgrep,然後從命令檢查返回代碼。如果是0,這意味着grep的發現了什麼,做你的邏輯:

  • 設置-q爲grep的,所以沒有比賽將默認打印打印出來
  • 尾最後10行,你可以添加-n選項也是行號。
  • 我們可以利用的&&

組裝在一起,我們有一條線:

grep -q 'Server started' <(tail -n10 log.out) && service httpd start 
相關問題