Sed OSX-更改文件包括从尖括号到双引号的指令
我有大约1000个带尖括号的文件。我希望使用以下示例中的任何脚本更改此指令: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'/
#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,我已经编辑过了。就我个人而言,我几乎从未使用过这个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'