问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用sed -i 命令提示“sed: -e expression #1, char 35: unterminated `s' command”报错

发布网友 发布时间:2022-04-30 11:57

我来回答

5个回答

热心网友 时间:2023-10-23 08:35

sed里面需要用变量,要用双引号。

sed命令使用双引号的情况下,可以使用$var(变量)直接引用:

echo | sed "s/^/$RANDOM.rmvb_/g"

13562.rmvb_

sed命令使用单引号的情况下,可以使用'"$var"'引用(单引号,然后双引号,变量):

echo | sed 's/^/'"$RANDOM"'.rmvb_/g'

2442.rmvb_

扩展资料:

注意事项

在sed语句里面,变量替换或者执行shell命令,双引号比单引号少绕一些弯子;所以,sed和变量的关键词搜索的结果,众多都写上替换单引号为双引号。

sed命令中使用双引号的情况下,直接`shell command`或者$(shell command)引用命令执行。

echo | sed "s/^/$(date +"%Y%m%d").rmvb_/g"

20130401.rmvb_# 结果

# 使用环境变量$RANDOM以及旧式命令替换的例子:

echo | sed "s/^/`echo $RANDOM`.rmvb_/g"

29484.rmvb_# 结果

热心网友 时间:2023-10-23 08:35

1、首先这边先建一个字母大小转换的脚本test2.sh。

2、sed命令中p能实现打印匹配行的功能,sed -n "1p" test2.sh:带-n选项的话,只打印test2.sh脚本第一行匹配行。sed "1p" test2.sh:不带-n的话,不仅打印第一行匹配行,还打印输出test2.sh脚本的全部内容。

3、sed -n还可以打印文件的范围,比如打印test2.sh脚本的前两行,可以执行以下命令:sed -n "1,2p" test2.sh,就可以直接打印前两行。

4、只有当sed命令传递多个编辑命令式,才会使用到-e。

5、sed a\追加命令,命令格式为:sed ’指定地址a\追加内容‘ 目标文件这个追加内容在匹配行的下一行,只会输出到标准输出,原文件内容是不变的,例如在test2.sh脚本的/tr/所在的匹配行的下一行添加“#hello”内容,可需要执行。

热心网友 时间:2023-10-23 08:36

sed里面需要用变量,就得双引号
然后$需要转义
而且你可以一句搞定:
root@localhost:~/xly# cat 1
SW_MSB_NEW
ORACLE_HOME=asdasd
root@localhost:~/xly# sed -i "s#ORACLE_HOME=.*#ORACLE_HOME=\$ORACLE_BASE/proct/11.2.0/db_1;export ORACLE_HOME#g" 1
root@localhost:~/xly# cat 1
SW_MSB_NEW
ORACLE_HOME=$ORACLE_BASE/proct/11.2.0/db_1;export ORACLE_HOME

热心网友 时间:2023-10-23 08:36

命令提示是s命令后面没有结束,看命令应该是变量引用导致的问题

变量引用我改为双引号了,测试可行:

    sed -i "s#${CODE15}#ORACLE_HOME=$ORACLE_HOME/proct/11.2.0/db_1; export ORACLE_HOME#" /home/oracle/profile.txt

另外建议替换的命令格式后边加上g,也就是s/old/new/g,这样可以全文替换。


关于单双引号,网络上的一个总结:

单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

双引号里可以有变量,允许变量替换,双引号里可以出现转义字符



热心网友 时间:2023-10-23 08:37

sed -i 's#'$CODE15'#ORACLE_HOME=$ORACLE_BASE/proct/11.2.0/db_1; export ORACLE_HOME#' /home/oracle/.bash_profile;
两层单引号,怎么叫语法没问题呢?需要把外层的单引号改成双引号。

热心网友 时间:2023-10-23 08:35

sed里面需要用变量,要用双引号。

sed命令使用双引号的情况下,可以使用$var(变量)直接引用:

echo | sed "s/^/$RANDOM.rmvb_/g"

13562.rmvb_

sed命令使用单引号的情况下,可以使用'"$var"'引用(单引号,然后双引号,变量):

echo | sed 's/^/'"$RANDOM"'.rmvb_/g'

2442.rmvb_

扩展资料:

注意事项

在sed语句里面,变量替换或者执行shell命令,双引号比单引号少绕一些弯子;所以,sed和变量的关键词搜索的结果,众多都写上替换单引号为双引号。

sed命令中使用双引号的情况下,直接`shell command`或者$(shell command)引用命令执行。

echo | sed "s/^/$(date +"%Y%m%d").rmvb_/g"

20130401.rmvb_# 结果

# 使用环境变量$RANDOM以及旧式命令替换的例子:

echo | sed "s/^/`echo $RANDOM`.rmvb_/g"

29484.rmvb_# 结果

热心网友 时间:2023-10-23 08:35

1、首先这边先建一个字母大小转换的脚本test2.sh。

2、sed命令中p能实现打印匹配行的功能,sed -n "1p" test2.sh:带-n选项的话,只打印test2.sh脚本第一行匹配行。sed "1p" test2.sh:不带-n的话,不仅打印第一行匹配行,还打印输出test2.sh脚本的全部内容。

3、sed -n还可以打印文件的范围,比如打印test2.sh脚本的前两行,可以执行以下命令:sed -n "1,2p" test2.sh,就可以直接打印前两行。

4、只有当sed命令传递多个编辑命令式,才会使用到-e。

5、sed a\追加命令,命令格式为:sed ’指定地址a\追加内容‘ 目标文件这个追加内容在匹配行的下一行,只会输出到标准输出,原文件内容是不变的,例如在test2.sh脚本的/tr/所在的匹配行的下一行添加“#hello”内容,可需要执行。

热心网友 时间:2023-10-23 08:36

sed里面需要用变量,就得双引号
然后$需要转义
而且你可以一句搞定:
root@localhost:~/xly# cat 1
SW_MSB_NEW
ORACLE_HOME=asdasd
root@localhost:~/xly# sed -i "s#ORACLE_HOME=.*#ORACLE_HOME=\$ORACLE_BASE/proct/11.2.0/db_1;export ORACLE_HOME#g" 1
root@localhost:~/xly# cat 1
SW_MSB_NEW
ORACLE_HOME=$ORACLE_BASE/proct/11.2.0/db_1;export ORACLE_HOME

热心网友 时间:2023-10-23 08:36

命令提示是s命令后面没有结束,看命令应该是变量引用导致的问题

变量引用我改为双引号了,测试可行:

    sed -i "s#${CODE15}#ORACLE_HOME=$ORACLE_HOME/proct/11.2.0/db_1; export ORACLE_HOME#" /home/oracle/profile.txt

另外建议替换的命令格式后边加上g,也就是s/old/new/g,这样可以全文替换。


关于单双引号,网络上的一个总结:

单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

双引号里可以有变量,允许变量替换,双引号里可以出现转义字符



热心网友 时间:2023-10-23 08:37

sed -i 's#'$CODE15'#ORACLE_HOME=$ORACLE_BASE/proct/11.2.0/db_1; export ORACLE_HOME#' /home/oracle/.bash_profile;
两层单引号,怎么叫语法没问题呢?需要把外层的单引号改成双引号。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么叫补按揭 后按揭贷款什么意思 买房者续按揭有什么危害 加按揭是什么意思 八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 有人在现实生活中见过龙吗? 龙的命运怎么样? 为何有老人说见过龙,龙的原型究竟是什么呢? 为什么老一辈的人都说见过龙 为啥有老人说自己见过龙?这种动物真的是龙吗? 听很多老一辈的人都说见过龙,这个世界上到底有没有龙啊? 龙转世为人的明显特征 我见过龙,不骗你,我亲眼见过大雨过后,龙在天上,骗人死妈。 影子银行的现状 有谁可以帮我算下命吗?我见过龙,但是现在命也不是很好啊,跟其他人没什么区别。 影子银行的监管范畴 如果一个人真看见龙了,意味着什么? 我国影子银行40多万亿的总规模意味着什么?老百姓如何规避风险? 见过龙的人运气好吗 是不是见过龙的人,一辈子运气都不好,真的是这样吗? 《中国影子银行报告》,释放了金融监管什么信号? 小时候见过龙的人的命运 影子银行在经济社会中的定位是什么? 惠普电脑耳机插上去没反应,确定耳机是好的~声音还是从电脑里出来,确定... 我玩红色警戒2尤里的复仇怎么会老未响应 unix 操作语句里面 出现的-i是什么意思 比如sed -i ʻs/a/b/gʼab.file 属地管理监管不到位通报怎么写 Linux:sed的-i参数如何理解? 由于库房材料管理不善,领导要求发一个处罚通报,该怎么写啊? sed -i .bak 's/this/the/' d 这条命令有错误吗? 领导管理不到位,被处罚如何写处罚通告比较妥当?急急急……!!! sed -i 修改读取的档案的内容? 公司有两位主管人员,老板说他们管理不到位要罚款,主管罚200元,副主管罚100元,这个处罚通知怎么写呢? 以下两个sed替换怎么理解? 工作不到位罚款100元通知怎么写? linux sed命令 sed -i 's/I/O/g' 这条命令又没有办法实现直接读取当前的I变 荣耀50se高清通话怎么关闭 主管代替员工签了罚款单,管理不到位,该通告怎么写? sed命令通配符如何处理? 荣耀50无法关闭hd怎么办 怎样写员工上班时间未到岗,领导管理问题的处罚通报 工作不到位上级对下级有哪些处罚措施 荣耀50SE在那儿开通高清 国企员工因监管不到位被罚2000,领导受牵连被罚1万,最后领导让这名员工出现金,怎么办? mysql下怎么取消命令