Iva*_*van 10 command-line text-processing
我编写 Scala 代码,它的惯例是每级使用双倍空格进行标识。但是使用不同的编辑器会使我的来源充满空格和制表符。
我想自动重构所有文件(*.scala 文件,实际上,但指定这不是必需的)(在给定目录和所有底层 FS 分支(递归)中),用双空格替换所有制表符。我相信使用经典的 Unix/GNU 工具有一种简单而漂亮的方法可以做到这一点,但我在这方面缺乏任何经验。你会这么好心帮助我吗?
Sar*_*use 10
这应该这样做:
find . -type f -name '*.scala$' -exec sed -i 's/\t/ /g' {} +
Run Code Online (Sandbox Code Playgroud)
注意:这没有经过测试。
递归地,使用expand(为此目的而制作):find . -type f -name '*.scala' -exec bash -c 'for x in "$@"; do mv "$x"{,.bak} && expand -t 2 "$x.bak" > "$x" && rm "$x.bak"; done' {} +
我会用sedor perl(见 Sardathrion 的回答)来做,因为它们支持内联编辑,但expand无论如何我想提到好的 ol' 。
编辑:那将是 find . -type f -name '*.scala' -exec perl -p -i -e $'s/\t/ /g' {} +
| 归档时间: |
|
| 查看次数: |
4124 次 |
| 最近记录: |