Sed OSX-更改文件包括从尖括号到双引号的指令

Sed OSX-更改文件包括从尖括号到双引号的指令,sed,Sed,我有大约1000个带尖括号的文件。我希望使用以下示例中的任何脚本更改此指令: #include <file.h> 或 提前谢谢 ----编辑----- 我尝试了以下脚本: for myfile in $(find ./include); do sed -i '/^#include/s/<\([^>]*\)>/"\1"/' "${myfile}" > /dev/null done 以美元表示的myfile的(查找/包含);做 sed-i'/

我有大约1000个带尖括号的文件。我希望使用以下示例中的任何脚本更改此指令:

#include <file.h>

提前谢谢

----编辑----- 我尝试了以下脚本:

for myfile in $(find ./include); do

        sed -i '/^#include/s/<\([^>]*\)>/"\1"/' "${myfile}" > /dev/null
done
以美元表示的myfile的
(查找/包含);做
sed-i'/^ include/s/]*\)>/“\1”/“${myfile}”>/dev/null
完成
但结果是:
sed:1:“./include/DIR/FILE.h”:命令代码无效。

假设您的文件位于目录
目录名下

sed '/^#[[:blank:]]*include/s/<\([^>]*\)>/"\1"/' your_input
grep -rl '#include <.*>' directory-name/ | xargs sed -i 's/#include <\(.*\)>/#include "\1"/g'
grep-rl'#include'目录名/| xargs sed-i的/#include/#include“\1”/g

到目前为止您尝试了什么?您尝试了什么?我们能帮你找到什么线索吗?用正则表达式查找/替换可能是一种解决方案。通过一点
Find-exec stuff
查找…|xargs stuff
其中
stuff
是一些
sed
awk
?您说它不起作用,但创建
hfile
变量并尝试使用
myfile
变量。所以sed没有看到输入文件,并在stdin上等待一些东西…:(sed:1:“./包括/文件h”:无效的命令代码。ANSI规范在linux上的
include
…@Pasquale之后接受任意数量的空格或表格,还是osx?osx。对于缺少clarification@Pasquale请参阅OSX要求备份作为参数提供。您可以在
sed-i''中提供空引号…
bash脚本说:-我可能不是我们使用stdinNote编辑OP是在OSX上的,并且
sed-i
在那里不起作用。因此,最好只使用一个普通的
sed'.'文件>新建文件和&mv新建文件。
。或者使用
sed-i'.'文件
,甚至
sed-i.bak'.
。谢谢@fedorqui,我已经编辑过了。就我个人而言,我几乎从未使用过这个ode>-i选项无论如何,当您进行大批量更改时,备份总是更好的做法…并且只有在检查一切正常后才删除(在本例中,在编译项目之后)。
for myfile in $(find ./include); do

        sed -i '/^#include/s/<\([^>]*\)>/"\1"/' "${myfile}" > /dev/null
done
sed '/^#[[:blank:]]*include/s/<\([^>]*\)>/"\1"/' your_input
for myfile in ...
do
  sed -i'' '/^#[[:blank:]]*include/s/<\([^>]*\)>/"\1"/' "${myfile}"
done
grep -rl '#include <.*>' directory-name/ | xargs sed -i 's/#include <\(.*\)>/#include "\1"/g'