全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 977|回复: 8

请教个sed命令的写法,太魔性了

[复制链接]
发表于 2017-2-5 02:35:54 | 显示全部楼层 |阅读模式
请教大家一个Shell 编程里的 sed使用的问题,
我用 sed -i "" file  或 sed -i '' file 要么是会出错, 要么是会无效, 不知道为什么, 请大家帮忙看看, 谢谢了.

无论是用 sed -i "" file 还是 sed -i '' file 都会出错

因为我的修改内容需要根据变量来操作

sed -i "" file ---变量可以解析
sed -i '' file ---变量会被当成文本来解析

二楼上图


502好多天了, 问个问题都这么难. 汗
 楼主| 发表于 2017-2-5 03:23:14 | 显示全部楼层
Screenshot.png (171.21 KB, 下载次数: 0)

Screenshot-1.png (176.28 KB, 下载次数: 0)

这样的都会出错
发表于 2017-2-5 03:27:44 | 显示全部楼层
不会,如果是我就花50块到淘宝找专业人才解决。
 楼主| 发表于 2017-2-5 03:41:20 | 显示全部楼层
倾城翻翻 发表于 2017-2-5 03:27
不会,如果是我就花50块到淘宝找专业人才解决。

只是想明白问题所在, 也是一种学习.
发表于 2017-2-5 05:59:45 | 显示全部楼层
你的$c里本身带有/ 会造成冲突.
试试
"s|$i|$c|g"
或者
"s,$i,$c,g"
 楼主| 发表于 2017-2-5 13:42:05 | 显示全部楼层
domin 发表于 2017-2-5 05:59
你的$c里本身带有/ 会造成冲突.
试试
"s|$i|$c|g"

谢谢您
发表于 2017-2-5 15:14:11 | 显示全部楼层
bash只会展开双引号里的$变量,sed看到的是展开之后的结果
 楼主| 发表于 2017-2-5 15:21:03 | 显示全部楼层
dabiantai 发表于 2017-2-5 15:14
bash只会展开双引号里的$变量,sed看到的是展开之后的结果

比如说我这个需要怎么修改呢? 谢谢了
 楼主| 发表于 2017-2-5 18:59:57 | 显示全部楼层
我的理解是我的$变量里的一个路径, 里边带有/字符, 但sed并没有转义这些字符, 所以才会出错的. 但去不知道如何解决了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-3-28 19:04 , Processed in 0.069030 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表