Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 对具有特定扩展名的每个文件执行命令_Bash_Loops_Nested_Find - Fatal编程技术网

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' {} \;