2012-11-12 66 views
0

我正在撰寫一個小腳本,以每小時cron檢查我們的Ironport日誌以發送垃圾郵件的內部人員。這段代碼導致一些奇怪的行爲,其中n個字符(不是新行)被空白替換,例如,Bash grep/echo用空格替換n

11月12日17點17分27秒[消毒] 1個textmail- [消毒]:我FO:MID 2417158我TERIM判決USI GE GI E:CASE垃圾正

代碼:

VAR=`egrep $line /var/spam_checker/log_temp` 
# extract email address from that variable 
echo -e $VAR >> /var/spam_checker/debug 

NB。這是一段代碼 - 有一個原因,它存儲在一個變量,而不是寫入一個文件

我缺少一個開關的egrep /回聲或什麼?

+0

嘗試'echo'不帶'-e'選項。這可能會有所幫助,因爲-e嘗試轉換轉義序列。 –

+0

如果包含特殊的外殼字符,還要在'$ VAR'周圍放置雙引號。 – Barmar

+1

'$ line'是什麼? – choroba

回答

2

由於對mark a comment as an answer的功能請求仍然被拒絕,因此我在此複製上述解決方案。

如果包含特殊的外殼字符,還在$VAR附近加雙引號。 - Barmar

echo -e "$VAR" >> /var/spam_checker/debug