问答文章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-21 11:58

我来回答

5个回答

热心网友 时间:2023-11-10 06:14

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-11-10 06:14

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-11-10 06:14

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-11-10 06:15

命令提示是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-11-10 06:16

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
梦见穿堂风 没有爱情我们一样会快乐的对吗 没有爱情的人会快乐么? 解除合同的效力有什么 合同解除会产生什么法律效力 合同解除后,哪些条款仍具效力? 合同解除产生哪些效力呢 民法典中合同解除产生哪些效力 解除合同的效力有哪些 济南七中学校怎么样 【 sed -i '1i\,' filename 】这个命令是什么意思? 怎么在手机QQ上查看到定时说说 我想编辑FLASH用什么软件 如何编辑网页中的flash动画 怎么制作Flash啊?需要用什么软件?拜托了各位 谢谢 哪些软件可以制作flash动画? FLASH文件怎么编辑 洪恩在线制作flash的软件 有没有可以直接修改flash的软件啊 如何编辑Flash flash在线修改 150分!!!!!!!!!!! 怎么修改flash 如何使用 “金山游侠” 修改 在线的flash小游戏? 如何制作flash? 在线flash小游戏的修改方法 怎么在线制作FLASH 如何在线修改FLASH游戏数据!?? 定时说说怎么查看 属虎的和什么属相和啊 属虎的和什么相冲 sed -i命令替换 unix 操作语句里面 出现的-i是什么意思 比如sed -i ʻs/a/b/gʼab.file Linux:sed的-i参数如何理解? sed -i 修改读取的档案的内容? sed -i .bak 's/this/the/' d 这条命令有错误吗? 关于Linux里的sed命令。 如何使用sed命令进行字符替换 linux命令sed的用法linux命令sed Linux下文件头部添加内容 如何使用sed命令替换指定行的换行符\n linux shell sed命令用法 sed命令通配符如何处理? linux里面的sed命令怎么用,做什么的?请详细说明 如何用sed命令往空文件中写入数据 Liunx命令sed的语法问题 linux中sed命令如何运用‘\ ’ 反斜杠? 在qq空间里定时发表的说说,发表前怎么查看? 怎样将word文档当前页面为横向,后面还是纵向 word下一页横向怎么设置 word如何插入横页后下一页怎样恢复纵向