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