gpt4 book ai didi

Linux sed 替换字符串 - 有人可以解释这个错误吗?

转载 作者:太空狗 更新时间:2023-10-29 11:14:20 24 4
gpt4 key购买 nike

我有1个文件,希望用sed来替换字符串。

一个.txt

#define 1
#define 2

b.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

MODEL_NAME='123 %s abc 3.0 %d <<456: %s>>'
sed -i 's/#define 1/#define 1 \"'${MODEL_NAME}'\"/g' 1.txt

我在 1.txt 中的预期结果:

#define 1 "123 %s abc 3.0 %d <<456: %s>>"
#define 2

但是我从控制台收到了错误信息:

sed: -e expression #1, char 27: unterminated `s' command

有人可以帮忙解释一下这个条件吗?谢谢。

最佳答案

因为您在 sed 命令周围使用了单引号,所以 shell 变量 ${MODEL_NAME} 永远不会展开。尝试:

sed -i "s/#define 1/#define 1 \"${MODEL_NAME}\"/g" 1.txt

关于Linux sed 替换字符串 - 有人可以解释这个错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23081045/

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