加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 02:06:24 所属栏目:Linux 来源:网络整理
导读:我正在尝试使用类似的东西 unexpand -t 4 *.php 但我不确定如何写这个命令来做我想要的. 古怪, unexpand -t 4 file.php file.php 给我一个空文件. (即没有任何东西覆盖file.php) 我可以指定多个文件,但不知道如何覆盖每个文件. 我可以使用我的IDE,但有超过20
我正在尝试使用类似的东西

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读