我正在編寫一個shell腳本來在增長的日誌文件上執行「尾部」操作。該腳本接受要搜索的參數,並遞增地查詢它們的輸出。動態構建grep字符串
例如,如果腳本調用如下:
logs.sh string1 string2
應該翻譯成:
tail -f logs.txt | grep string1 | grep string2
我建立的grep字符串列表如下:
full_grep_string=""
for grep_string in $*
do
full_grep_string="$full_grep_string | grep $grep_string"
done
該字符串是正確構建的,但是當我嘗試最終將其標記爲tail命令時,就像這樣...
tail -f $LOG_FILE_PATH $full_grep_string
... grep不適用,我得到未經過濾的日誌。
我失去了一些東西在這裏?還是有更簡單的方法來做到這一點?
只是一個小的澄清:那是你的腳本應該輸出的日誌文件的行同時包含的想法string1和string2,還是你打算找到包含任何字符串的行? – 2009-07-08 09:29:36
另外,你在用什麼外殼?慶典? – 2009-07-08 09:31:14
對我來說,debian lenny我必須面對兩個grep加在一起的問題,不能用尾巴-f,但用尾巴 – tuergeist 2009-07-08 09:41:15