Bash

在每行 grep 輸出出現後執行命令

  • January 27, 2021

我想在出現正則表達式模式後不斷監視 syslog 並執行一些計算,並在命令中使用 grep 輸出,並繼續監視新的匹配行。我能想到的最好方法是使用tail -f此輸出並將其傳遞到grep. 唯一的問題是我不知道如何根據每一行新的輸出執行新命令並繼續執行直到終止。

關於我可以在這裡使用什麼的任何想法?

你想要的是將它輸送到一段時間閱讀。僅計算出現次數的快速範例:

#!/bin/bash
a=0
tail -f input.txt | grep 'pattern' | while read line ; do
   a=$((a+1))
   echo -e "found match in $line , occurrence no. $a"
done

嘗試dd if=/dev/random of=file作為參考。假設您只需要“模式”作為觸發器而不需要前面的行。

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