AIX 上的字符串替换 shell 脚本

AIX 上的字符串替换 shell 脚本

我正在使用,但在我使用的版本中AIX没有可用的选项:-ised

sed: illegal option -- i
Usage:  sed [-n] Script [File ...]
        sed [-n] [-e Script] ... [-f Script_file] ... [File ...]

我想使用脚本替换其中一个文件中目录的路径;我正在尝试这样做:

WORKDIR="/workdir/liv/spool"
ARCHIVE="u/user/new"

sed 's/$WORKDIR/$ARCHIVE/ig' test.dat > abc
mv abc test.dat

出现错误:

sed: Function s/$WORKDIR/$STRATIXARCHIVE/ig cannot be parsed.

我想用 $$ARCHIVE 替换所有与 $WORKDIR 相同的内容

答案1

Shell 变量只能在双引号(“)之间解析。

sed "s/$WORKDIR/$ARCHIVE/ig" test.dat > abc(双引号)

如果没有正斜杠,则可以使用。Sed 可以使用任何字符来分隔这些输入字段,而正斜杠可能不是最佳选择,因为它用于目录路径。例如,您可以改用这个:

sed "s#$WORKDIR#$ARCHIVE#ig" test.dat > abc

相关内容