【问题标题】:Use Variable in SED [duplicate]在 SED 中使用变量 [重复]
【发布时间】:2019-05-18 04:52:55
【问题描述】:

我无法在 sed 中扩展此变量。我已经尝试了所有我能想到的。

我正在尝试将 file1 的 md5sum 放在 file2 的第 10 行

我可以从正则表达式中取出 $x 并输入一些文本,它就可以工作了。它只是不接受变量。 printf 变量没问题。

#!/bin/bash
 x=$(md5sum /etc/file1)
 printf "$x \n"
 sed -i 10"s/.*/$x/g" /usr/bin/file2

【问题讨论】:

  • 你遇到了什么错误?

标签: regex bash variables sed


【解决方案1】:

由于md5sum 的输出包含/,因此您可以使用此命令,该命令使用~ 作为正则表达式分隔符而不是/

sed -i "10s~.*~$x~" /usr/bin/file2

【讨论】:

  • 您好,是的,和我发现的一样……是 md5sum 的输出包含 /etc/file1 导致 sed 阻塞。感谢您的帮助。
【解决方案2】:

在我通过运行 $x thru 从 md5sum 输出(包括文件名和目录)中减少变量之后:

x=$(echo $x | head -n1 | awk '{print $1;}')

只留下它工作的 MD5 并退出错误。

【讨论】:

    猜你喜欢
    • 2014-05-07
    • 2011-03-13
    • 2014-01-09
    • 2018-07-28
    • 2014-07-12
    • 2020-07-01
    • 2012-12-24
    • 2019-06-24
    • 2019-01-30
    相关资源
    最近更新 更多