我可以在sed中设置LANG变量吗?

我可以在sed中设置LANG变量吗?,sed,Sed,我编写了一个脚本来替换某些表达式并删除其他表达式,但它无法清除特殊字符。设置LANG=C解决了这个问题,但是可以在sed中设置环境变量吗?不,但是您不必这样做。您可以在执行sed命令之前设置Environment变量。如果您的脚本是sed脚本,您只需将该部分压缩并放入标准shell脚本中即可。e、 g #!/usr/bin/sed -f 1 { x s/^$/ / s/^.*$/&&&&&&&&a

我编写了一个脚本来替换某些表达式并删除其他表达式,但它无法清除特殊字符。设置LANG=C解决了这个问题,但是可以在sed中设置环境变量吗?

不,但是您不必这样做。您可以在执行sed命令之前设置Environment变量。

如果您的脚本是
sed
脚本,您只需将该部分压缩并放入标准shell脚本中即可。e、 g

#!/usr/bin/sed -f

1 {
    x
    s/^$/          /
    s/^.*$/&&&&&&&&/
    x
}
进入

(来自
sed
info
文档中的示例。)


对于尾随的“$@”,它应该以相同的方式传递参数和处理stdin。

您可以设置环境变量,使其仅在单次调用命令或脚本时处于活动状态:

LANG=C sed ...

使用
“$@”
;双引号至关重要。如果没有它们,$@与$*相同,并且会破坏文件名中的空格(更准确地说,它将它们视为分隔符,并将名称拆分为两个或多个作为单独参数传递的部分)。始终使用
“$@”
(好吧,几乎总是这样;“始终”直到你知道为什么在某些特殊情况下不需要这样做-在一般情况下,你使用
“$@”
,不要三思)。
LANG=C sed ...
LANG=C sedscript