我有一个命令输出一些我想输入到 sed 的“替换文本”字段的文本。但我得到了
sed: -e expression #1, char 24: unterminated `s' command error.
这是重要的片段:
input=$(./mid 1 10 random.txt)
echo $input
cat $1 |sed "s/times/$input/g" > tester5.txt
这是命令行输出:
$ ./Batchtest tester.txt
some random text some random text some random text some random text
sed: -e expression #1, char 24: unterminated `s' command
正如您所看到的“./mid 1 10 random.txt”输出一些我想插入到 sed 的“替换文本”字段的文本,但它不起作用。我尝试在 $input 周围添加引号,但这没有帮助。
任何帮助将不胜感激!
最佳答案
$input
可能包含一些对 sed
具有特殊含义的字符。您可以尝试引用它们(即在它们前面添加反斜杠)或使用更高级的工具进行替换,例如珀尔:
perl -e '$input = `./mid 1 10 random.txt`;
while (<>) {
s/times/$input/g;
print;
}' "$1" > tester5.txt
关于bash - 在 sed 中输入 "replaced text"字段的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11690211/