大家好,我遵循以下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