我有一个文件包含这个<!-- CordovaVersion -->我想用<script src="cordova-1.7.0.js" type="text/javascript"></script>
我试过了
sed 's/"<!-- CordovaVersion -->"/"<script src="cordova-1.7.0.js" type="text/javascript"></script>"/g' junk4 > junk4_modified
但似乎并不奏效。 请帮忙吗?
Linux内核:自旋锁SMP:为什么在spin_lock_irq SMP版本中有一个preempt_disable()?
Linux内核中的代码在哪里打开(“/ proc / self / fd / NUM”)?
两个不同进程的两个相同的线性地址?
Android有没有办法在adb中显示进程优先级?
将vim中的filter命令input后,将光标移动到下一行
Linux x86 64是否同时拥有2M和4K页面?
Tizen移动和iPad的Linux – 它是否允许GCC和Java?
如何判断用户是否select了“terminal运行”
使用一些其他字符,如#作为分隔符而不是/ 。
sed 's#<!-- CordovaVersion -->#<script src="cordova-1.7.0.js" type="text/javascript"></script>#g' junk4 > junk4_modified
首先,你不需要像李高说的那样额外的东西,其次,你需要知道sed是如何理解什么被替换的:
s/this/that/flags
这意味着用附加标志替换this (例如g表示无处不在)。 其实这个/不是一个特殊的字符,你可以使用任何其他的#如scai所说的:
s#this#that#flags
但问题是什么? 想象一下,你想用th/at替换this 。 然后sed看到这个:
s/this/th/at/flags
并得到正确的困惑。 你想用this替换吗? 比at/flags意味着什么? 你试图用at替换this/th吗? 或者this与th/at ? 没有办法告诉。
这就是为什么你应该逃避特殊字符 。 由于我们使用/作为分隔符,因此当它不是分隔符时,我们必须将其转义。
sed 's/<!-- CordovaVersion -->/<script src="cordova-1.7.0.js" type="text/javascript"></script>/g' junk4 > junk4_modified
(当然,如果我们使用#并且在this或者那里有#你应该逃脱# )
sed 's/<!--s*CordovaVersions*-->/<script src="cordova-1.7.0.js" type="text/javascript"></script>/g' junk4 > junk4_modified
使用这一行,sed将搜索"<!-- CordovaVersion -->"并尝试用<script src="cordova-1.7.0.js" type="text/javascript"></script>"替换它。但是你的原始文件不包含" 。 只需从sed命令中删除它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。