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

时间:2011-01-23 11:26:33

标签: sed

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

3 个答案:

答案 0 :(得分:2)

不,但你不必。您可以在执行sed命令之前设置环境变量。

答案 1 :(得分:0)

如果您的脚本是sed脚本,则可以将该部分缩小并将其放入标准shell脚本中。 e.g。

#!/usr/bin/sed -f

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

#!/bin/sh

export LANG=C

/usr/bin/sed '
1 {
    x
    s/^$/          /
    s/^.*$/&&&&&&&&/
    x
}
' "$@"

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

使用尾随"$@",它应该传递参数并以相同的方式处理stdin。

答案 2 :(得分:0)

您可以设置环境变量,使其仅对单个调用命令或脚本有效:

LANG=C sed ...

LANG=C sedscript