【问题标题】:Bash for Windows - Replace all repeated tabs \t\t\t with a single tab \t for all files in a directoryBash for Windows - 将目录中所有文件的所有重复选项卡 \t\t\t 替换为单个选项卡 \t
【发布时间】:2017-01-16 18:03:47
【问题描述】:

使用 bash for Windows 并尝试找出是否有一种简单的方法可以用单个命令替换目录中的所有文件。

我知道

tr -s '\t' '\t' < inputFile > outputFile

应该可以,但是如果我要查看数千个文件,有没有办法对目录中的所有文件执行此操作?

【问题讨论】:

  • 您要处理的文件是否有可以使用的通用文件扩展名?
  • 是的,在这种情况下是 *.txt。

标签: windows bash windows-subsystem-for-linux


【解决方案1】:

我会使用 sed 来修改文件:

sed -r -i -e "s/\t+/\t/g" *.txt

您需要更改*.txt 以匹配您感兴趣的文件。-r 选项启用+ 正则表达式限定符和-i 告诉sed 修改文件代替写入标准输出。

【讨论】:

  • 非常感谢,这很有意义。如果我想用其他东西替换它,比如空格,我可以轻松地将“/\t”部分更改为“”或任何我想要的,是吗?
  • 是的,但请记住 -i 将进行就地替换,因此我建议您在测试各种内容时删除 -i 选项。
  • 谢谢。最后一个问题,有没有办法只针对多标签?例如,\t+ 以 1 个或多个为目标。因此,如果我想用任何东西替换 say, \t\t\t,比如 '-',但只留下 \t,这可能吗?
  • 是的:sed -e "s/\t\t\t/-/g" filename.txt
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多