在SED中使用变量

时间:2018-12-17 19:18:39

标签: regex bash variables sed

我无法在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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

通过运行$ x来减少md5sum输出中的变量,该变量包括文件名和目录:

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

仅保留其有效的MD5并退出错误提示。