tail 與 sed 組合使用

如何將某個檔案新增的部分,另外存下來

tail -f -n 0 source.log |sed -u > new.txt

tail -f 可以顯示出source.log 從目前開始新增的部分
-n 0 就只會把多出來的部分顯示出來,不加這段的話,會將最後幾行都秀出來

| 可以將所得到的文字傳往下一層(呼叫sed 處理)

sed 取得後,-u 為無緩衝模式,也就是會直接輸出
> 可以將輸出導入到 new.txt文件中

另外tail 也可以搭配 gerp 過濾出關鍵資訊來另外儲存

tail -f -n 0 source.log |grep 'keyword' |sed -u > new.txt

就只會將該行有寫到keyword 的往後送,並記錄下來

也可以拿來執行取代

tail -f -n 0 source.log |grep --line-buffered 'keyword' |sed -u -e $'s/keyword/replacedword/' > new.txt

這個作法是可以找到keyword 並使用 sed 取代後並輸出

--line-buffered 這個是grep 的選項,與sed 的 -u 功能類似,可以一起使用!

所以,如果 sed -u 有異常,可以
tail -f -n 0 source.log |grep --line-buffered 'keyword' |sed  > new.txt
也有一樣的效果

發佈留言