Shell 遍历文件并将所有选项卡替换为两个空格

Shell 遍历文件并将所有选项卡替换为两个空格,shell,tabs,spaces,Shell,Tabs,Spaces,我想在我的项目目录中的所有文件中用2个空格替换所有选项卡。 下面是我编写的代码,但它没有按预期工作 选项卡与文件中的选项卡相同 for i in * do sed 's/tab/spacespace/g' "${i}" > temp.txt && mv temp.txt "${i}" done 有什么建议吗?在我的代码中发现了一个愚蠢的错误。这是有效的 for i in * do sed 's/\t/ /g' "${i}" > temp.txt &

我想在我的项目目录中的所有文件中用2个空格替换所有选项卡。 下面是我编写的代码,但它没有按预期工作

选项卡与文件中的选项卡相同

for i in *
do
  sed 's/tab/spacespace/g' "${i}" > temp.txt && mv temp.txt "${i}"
done

有什么建议吗?

在我的代码中发现了一个愚蠢的错误。这是有效的

for i in * 
do
  sed 's/\t/  /g' "${i}" > temp.txt && mv temp.txt "${i}"
done
你也可以使用

由于以下原因,建议选择展开:

例如考虑TabSeas=8。(为便于解释,请选择较大的选项卡大小。)

然后,
abcpqrs
应表示如下:

T       T       T <~~~~~~ Tab markers on every 8th column, since tabsize=8.
abc     pqrs
-->     <-- This gap is 5 characters, not 8.

T expand是推荐的选项(参见其他答案)。此外,即使在sed中,也不需要使用重定向+mv。sed已经有了一个
-i
选项。@anishsane-i非常有用。谢谢。
T       T       T <~~~~~~ Tab markers on every 8th column, since tabsize=8.
abc     pqrs
-->     <-- This gap is 5 characters, not 8.