我试图找到并替换所有这些:
#include <boost
用这个:
#include </home/pi/Desktop/boost_1_66_0/boost
让图书馆工作。这就是我想出的:
sed -i 's/#include <boost/#include <\/home\/pi\/Desktop\/boost_1_66_0\/boost/g' *
但是给了我这个:
sed:无法编辑构建:不是常规文件
我逃脱了&#39; /&#39;错了还是#问题?
答案 0 :(得分:2)
看起来build
是一个目录,您无法在目录上运行sed
。一个选项是,如果您的目录树只有一个深度,则使用最终参数*/*
而不是*
。对于任意深度的目录结构,更有效的方法是使用find
查找所有文件并在其上运行sed
:
find . -type f -exec sed -i 's/from/to/' {} \;
这使用find
从当前目录开始并递归地下降目录树。对于它找到的每个常规文件(-type f
),它将运行给予-exec
选项的命令。它用{}
替换它找到的文件。