我正在使用,但在我使用的版本中AIX
没有可用的选项:-i
sed
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