linux - 如何在 shell 脚本中转义冒号和双斜杠?

标签 linux bash shell sed

我正在编写 shell 脚本来替换具有 URI 的文件中的一行。我在使用 URI 时遇到错误。

要放置的线:

   source 'http://rubygems.org'

我的脚本:

   #sed -i '1s/.*/  source 'https://rubygems.org' /' /Gemfile

无法识别单引号。

我得到的错误:“sed:-e 表达式 #1,字符 23:‘s’的未知选项”

最佳答案

您可以在 sed 命令中使用备用分隔符。

例如,几年前我有一个必须交换 URL 的 sed 行,我使用了 @at 符号。

例如,使用以下内容创建一个文本文件“file.txt”: 我有一个来自加利福尼亚的 unix 操作系统

在您的 shell 中运行以下命令,使用 @ 而不是通常的斜线分隔符。

$ sed 's@unix@linux@' file.txt
I have a linux operating system from California

关于linux - 如何在 shell 脚本中转义冒号和双斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28766865/

相关文章:

php - 如何停止正在监听 http ://127. 0.0.1:8000 的 symfony 进程

linux - svn : an existing connection was forcibly closed by the remote host

linux - bash shell脚本中初始化动态变量(可变变量)

linux - bash - 查找所有 .bashrc 文件并附加到它们

linux - rsync - 复制同名文件

linux - 在 vagrant box 中启动一个在 screen 上运行的服务器

linux - 在没有 PID 的情况下终止在后台运行的 while 循环

mysql - 从远程服务器导入数据库的脚本

unix - 如何设置 STDOUT 和 STDERR 的字体颜色

shell - 在文件中搜索模式并使用 awk、sed 在其自己的文件中输出每个模式结果