我刚遇到最令人困惑的(对我来说)现象。
我有一个sed one liner
sed 's/^(\*Default.*:) Letter/$1 A4/g' /usr/share/ppd/hplip/HP/HP-*
这正是我想要的并取代“* DefaultPaperDimension:Letter “with”* DefaultPaperDimension:A4“
但是当我跑步时
sudo sed 's/^(\*Default.*:) Letter/$1 A4/g' /usr/share/ppd/hplip/HP/HP-*
没有任何匹配或替换。 “* DefaultPaperDimension:信 “遗骸”* DefaultPaperDimension:Letter“
为什么? 8 - /
答案 0 :(得分:0)
感谢您的评论。在搜索sed的版本时,我发现我创建了一个别名sed='perl -pe'
,它是一个用户别名而不是全局别名,不会影响sudo。
因此:
sed 's/^(\*Default.*:) Letter/$1 A4/g' /usr/share/ppd/hplip/HP/HP-*
实际上是
perl -pe 's/^(\*Default.*:) Letter/$1 A4/g' /usr/share/ppd/hplip/HP/HP-*
,而
sudo sed 's/^(\*Default.*:) Letter/$1 A4/g' /usr/share/ppd/hplip/HP/HP-*
是实际的sed,因此它看起来是什么。
再次感谢。