就像标题一样简单。我有嵌套文件,如果它们以.toml
结尾,我想对它们执行命令。
尝试
find . -type f -exec sed -i '3i value = 1' {} \;
遍历每个文件,但有没有办法只对以.toml
结尾的文件执行此操作?
答案 0 :(得分:3)
-name
开关:
find . -name '*.toml' -type f -exec sed -i '3i value = 1' {} \;
匹配任何以.toml
结尾的文件。小心包含引号以防止*
被shell扩展 - 您希望将其按原样传递给find
。
顺便说一句,您可以使用-exec {} +
来加快脚本的执行速度:
find . -name '*.toml' -type f -exec sed -i '3i value = 1' {} +
这会将多个结果传递给sed
的同一个实例,而不是为每个结果生成一个单独的结果。
答案 1 :(得分:1)
find . -type f -name '*.toml' -exec sed -i '3i value = 1' {} \;