大家好,我跟着以下Find and Replace Inside a Text File from a Bash Command。
现在我正在使用sed
解决方案,如果我使用两个预定义字符串似乎有效,但我想用文件中的内容替换内容,而不是由我定义。
我的文件中包含"功夫狗"我希望它能取代“#34; dog"用" panda"这个词但那个词在另一个文件中。我试过了:
sed -i 's/dog/$(cat filethatcontainspanda)/g' /home/myhome
但问题是,我没有用熊猫取代“狗”这个词,而是“#34; dog"替换为" $(cat filethatcontainspanda)"所以最终没有"功夫熊猫",我有" kung fu $(cat filethatcontainspanda)"。这有什么解决方法吗?
答案 0 :(得分:0)
您需要使用双引号"
而不是单'
和awk
而不是cat
:
sed -i "s/dog/$(awk '{print $1}' filethatcontainspanda)/g" /home/myhome
答案 1 :(得分:0)
您必须使用“代替”
sed -i "s/dog/$(cat filethatcontainspanda)/g" /home/myhome