我无法在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
答案 0 :(得分:1)
由于~
的输出包含/
,因此您可以使用使用md5sum
作为正则表达式定界符而不是/
的命令:
sed -i "10s~.*~$x~" /usr/bin/file2
答案 1 :(得分:0)
通过运行$ x来减少md5sum输出中的变量,该变量包括文件名和目录:
x=$(echo $x | head -n1 | awk '{print $1;}')
仅保留其有效的MD5并退出错误提示。