gpt4 book ai didi

linux - 适用于 Solaris、Linux 和 HPUX 的 sed 命令

转载 作者:太空狗 更新时间:2023-10-29 12:18:54 27 4
gpt4 key购买 nike

我需要更改配置文件中的指令并使其在 Linux 中正常工作,但在 Solaris 中,它显示命令出现乱码。

这是指令

    enable-cache            passwd          yes

我需要简单地将是更改为否。如何使用适用于 Solaris、HPUX 和 Linux 的 sed?

这是在 Linux 中运行的 sed 命令。 Solaris 不喜欢 -r

sed -r 's/^([[:space:]]*check-files[[:space:]]+passwd[[:space:]]+)yes([[:space:]]*)$/\1no\2/' inputfile

最终目标是将此命令放入脚本中并在整个企业中运行。

谢谢

格雷格

我昨天也发布了类似的东西,它适用于 Linux 但不适用于其他。

最佳答案

Solaris 有/usr/bin/sed 和/usr/xpg4/bin/sed。这些都不支持 -r 选项,Linux 的该选项是使用扩展的正则表达式。 Solaris 中的 sed 没有任何选项可以像那样设置正则表达式。如果您想要更简单的可移植性,您可以使用其他工具,特别是 awk。或者您将不得不使用两种正则表达式,一种带有 -r 和扩展正则表达式,一种不带 -r 和不同的正则表达式。您可能只想在 Solaris 机器上指定/usr/xpg4/bin/sed:

#!/bin/bash
sun=`expr index Solaris $(uname -a)`
if [ $sun -ne 0 ] ; then
/usr/xpg4/bin/sed [longer regex here ]
else
/usr/bin/sed -r [ extended regex here ]
fi

关于linux - 适用于 Solaris、Linux 和 HPUX 的 sed 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16724633/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com