【问题标题】:"sed" command in bashbash 中的“sed”命令
【发布时间】:2011-04-28 10:36:50
【问题描述】:

谁能帮我解释一下这个命令:

cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
   echo "Hello World"
EOF

“sed”命令有什么作用?

【问题讨论】:

标签: linux bash shell ubuntu sed


【解决方案1】:

这里sed 将其标准输入中所有出现的% 替换为$

举个例子

$ echo 'foo%bar%' | sed -e 's,%,$,g'

将产生“foo$bar$”。

【讨论】:

    【解决方案2】:

    sedStream EDitor。它可以做一大堆really cool things,但最常见的是文本替换。

    命令行的s,%,$,g 部分是要执行的sed 命令。 s 代表替代,, 字符是分隔符(可以使用其他字符;/:@ 很流行)。 % 是要匹配的模式(这里是文字百分号),$ 是要匹配的第二个模式(这里是文字美元符号)。末尾的g 意味着在每一行上替换globally(否则它只会更新第一个匹配项)。

    【讨论】:

    • 出于某种原因,sed 正在为我替换所有行,而不仅仅是当我最后省略 g 时的第一行。例如sudo sed -i 's,enabled=0,enabled=1,' /etc/yum.repos.d/epel.repo 在 sed 版本 4.2.1 的亚马逊 AWS 映像中
    • sed 将始终在每一行上运行。 g 选项使其替换该行上的每个匹配项,而不是该行上的第一个匹配项。
    【解决方案3】:

    sed 是一个流编辑器。我会说试试 man sed。如果您在系统中没有找到此手册页,请参考此 URL:

    http://unixhelp.ed.ac.uk/CGI/man-cgi?sed

    【讨论】:

      【解决方案4】:

      它读取Hello World (cat),用$ 替换所有出现的% (g),并以root 身份(覆盖)将其写入/etc/init.d/dropbox

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-05
        • 2010-11-29
        • 1970-01-01
        • 2019-05-04
        • 1970-01-01
        • 2016-12-23
        相关资源
        最近更新 更多