在 SED 中使用变量 [重复]
Posted
技术标签:
【中文标题】在 SED 中使用变量 [重复]【英文标题】:Use Variable in SED [duplicate] 【发布时间】: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
【问题讨论】:
你遇到了什么错误? 【参考方案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 并退出错误。
【讨论】:
以上是关于在 SED 中使用变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章