Bash 对具有特定扩展名的每个文件执行命令
就像标题一样简单。我有嵌套文件,如果它们以Bash 对具有特定扩展名的每个文件执行命令,bash,loops,nested,find,Bash,Loops,Nested,Find,就像标题一样简单。我有嵌套文件,如果它们以.toml结尾,我想对它们执行命令 尝试 find . -type f -exec sed -i '3i value = 1' {} \; 运行在每个文件上,但是否有方法仅对以.toml结尾的文件执行此操作?确实有;使用-name开关: find . -name '*.toml' -type f -exec sed -i '3i value = 1' {} \; 这与任何以.toml结尾的文件匹配。小心地包含引号以防止shell扩展*——您希望它按原
.toml
结尾,我想对它们执行命令
尝试
find . -type f -exec sed -i '3i value = 1' {} \;
运行在每个文件上,但是否有方法仅对以
.toml
结尾的文件执行此操作?确实有;使用-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
,而不是为每个结果生成一个单独的结果。不知道这有那么简单!
find . -type f -name '*.toml' -exec sed -i '3i value = 1' {} \;