linux – 如何使用’unexpand’直接覆盖(空格到标签转换)?

前端之家收集整理的这篇文章主要介绍了linux – 如何使用’unexpand’直接覆盖(空格到标签转换)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试使用类似的东西

unexpand -t 4 *.PHP

但我不确定如何写这个命令来做我想要的.

古怪,

unexpand -t 4 file.PHP > file.PHP

给我一个空文件. (即没有任何东西覆盖file.PHP)

我可以指定多个文件,但不知道如何覆盖每个文件.

我可以使用我的IDE,但有超过200个文件需要更换约67000个实例,这需要一段时间.

我希望我的问题的答案将是标准的unix票价,但我还在学习……

最佳答案
您很少使用输出重定向来替换输入.替换使用内部支持它的命令(因为他们自己执行基本步骤).从shell级别来看,分两步工作要好得多,如下所示:

>在foo上执行操作,创建foo.tmp
>将foo.tmp移动(重命名)为foo,覆盖原始文件

这将很快.它需要更多的磁盘空间,但如果在继续下一个文件之前执行这两个步骤,则只需要与最大的单个文件一样多的额外空间,这应该不是问题.

草图脚本:

for a in *.PHP
do
  unexpand -t 4 $a >$a-notab
  mv $a-notab $a
done

你可以做得更好(错误检查,等等),但这是基本的大纲.

原文链接:https://www.f2er.com/linux/440222.html

猜你在找的Linux相关文章