大家好,我遵循以下Find and Replace Inside a Text File from a Bash Command

现在,我正在使用sed解决方案,如果我使用两个预定义的字符串,该解决方案似乎可以工作,但是我想用文件中未定义的内容替换内容。

我有一个带有“功夫狗”字样的文件,我希望将其替换为“熊猫”字样的“狗”字,但该字词在另一个文件中。我试着做:

sed -i 's/dog/$(cat filethatcontainspanda)/g' /home/myhome


但是问题是,我没有用“熊猫”代替“狗”这个词,而是用“ $(cat filethatcontainspanda)”代替了“狗”这个词,所以最后我没有“功夫熊猫”,而是“功夫$”。 (cat filethatcontainspanda)”。有什么解决方法吗?

最佳答案

您需要使用双引号"而不是单'awk而不是cat

sed -i "s/dog/$(awk '{print $1}' filethatcontainspanda)/g" /home/myhome

10-01 09:00