我有一些关于sed行为的理解有些困难。
sed: -e expression n°1, caractère 10: `,' inattendue
给出以下错误
sed -n '/pattern/,$p' < input.inp > output.out
(我的系统是法语)。
sed -n "/begin/,/end/p" < input.inp > output.out
工作正常
我个人使用了像
这样的命令{{1}}
带有单引号或双引号,它们工作正常。
如果它有用,我有sed版本:sed(GNU sed)4.2.2
答案 0 :(得分:3)
在双引号中,shell(不是sed)将评估$p
。由于您可能无法设置名为p
的变量,因此sed只会看到/pattern/,
。为了防止这种情况发生,您需要通过编写$
来转义\$
到shell:
sed -n "/pattern/,\$p" < input.inp > output.out
(你可以想象,除非你的表达中需要shell变量,否则在眼睛和大脑上使用单引号要容易得多。)