Grep
grep中正則表達式的奇怪錯誤
我正在執行以下命令:
cat something | egrep "(abc|def)$"
在執行 Linux 的伺服器上。
與核心 2.6.18 相同的作業系統給出了正確的答案,而使用 2.6.19 我得到:
Illegal variable name.
顯然 $ 符號導致了錯誤,但問題是為什麼它在核心中表現不同?
1)您在兩台機器上使用相同類型的外殼嗎?
2)您是否嘗試過使用單引號,以便 shell 不會嘗試將美元符號解釋為變數?
這更有可能是您正在執行的外殼的問題。首先,引號;使用單引號時,變數不會在輸出字元串中被替換。IE,
% VAR="hello" % echo "$VAR world!" hello world! % eco '$VAR world!' $VAR world!
在您的情況下,它實際上是在嘗試執行
$
,但$
不是有效的變數名。如果您使用單引號,shell 將不允許替換美元符號。