gpt4 book ai didi

linux - 如何直接覆盖 'unexpand'(空格到制表符的转换)?

转载 作者:IT王子 更新时间:2023-10-29 00:25:20 24 4
gpt4 key购买 nike

我正在尝试使用类似

的东西
unexpand -t 4 *.php

但我不确定如何编写此命令来执行我想要的操作。

奇怪的是,

unexpand -t 4 file.php > file.php

给我一​​个空文件。 (即什么都不覆盖 file.php)

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

我可以使用我的 IDE,但是有 ~67000 个实例需要替换超过 200 个文件,这需要一段时间。

我希望我的问题的答案是标准的 unix 票价,但我仍在学习......

最佳答案

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

  1. 对foo进行操作,生成foo.tmp
  2. 将 foo.tmp 移动(重命名)为 foo,覆盖原来的

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

草图脚本:

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

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

关于linux - 如何直接覆盖 'unexpand'(空格到制表符的转换)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1091824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com