如何使用bash将标签转换为许多文件上的空格

时间:2013-08-27 15:33:38

标签: bash tabs

如何在一个命令中的目录中的所有.js文件中将制表符转换为空格?

3 个答案:

答案 0 :(得分:1)

find . -type f -iname "*.js" -print0 | xargs -0 -I _FILE_ tab2space _FILE_ _FILE_

答案 1 :(得分:1)

这会将标签转换为四个空格:

find /path/to/directory -type f -iname '*.js' -exec sed -ie 's|\t|    |g' '{}' \;

在接下来的两个|之间更改sed中的空格部分,以获得您喜欢的自定义空格数。

另一种方法是使用+一次将所有文件处理为一个sed调用:

find /path/to/directory -type f -iname '*.js' -exec sed -ie 's|\t|    |g' '{}' '+'

只考虑系统对命令的参数可能限制。

答案 2 :(得分:0)

更简单的语法:

for F in *.js; do sed -iE 's|\t|    |g' $F; done

(注意,编辑文件。)可以重命名已编辑的副本,或者如果经常这样做,可以将其放入函数中。