bash - 在 sed 中输入 "replaced text"字段的字符串

标签 bash scripting sed

我有一个命令输出一些我想输入到 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/

相关文章:

bash - 外壳 : Is it possible to parse optional parameters after non-optional ones?

c++ - 你知道项目\文件中包含文件的工具构建树吗?

angular - 如何使用 Angular 7 发送电子邮件

regex - 使用 sed 仅替换字符的单个实例

shell - 如何检查 OS X 中 sed 的版本?

linux - 十六进制查找 20 并在 LInux 中替换为 00

linux - 如何从 linux 命令行向我的 socket.io websocket 发送消息?

bash - 使用 git-svn 时模拟 subwcrev

windows - Powershell脚本自动输入端口号

bash - 最后一次出现下划线后从字符串中提取子字符串