【发布时间】:2015-04-29 00:21:36
【问题描述】:
对于我们的 IOS 项目,我想合并旧式的 pragma 行,例如
#pragma mark -
#pragma mark Getters
像单行一样
#pragma mark - Getters
在网上做了一些研究,想出了如下终端命令:
find . -type f -exec awk '{if (sub(/#pragma mark -$/,"#pragma mark -")) printf "%s", $0; else print $0}' {} > {} \;
这是合并这两行的第一个命令。然后我会使用另一个删除多余的#pragma mark - 字符。但是,上述命令不会终止。它根本不会改变任何东西。
【问题讨论】:
-
你不能
awk file > file(你使用什么命令无关紧要)终端立即截断输出文件,所以你的命令永远不会看到任何文件内容。跨度> -
@EtanReisner 感谢您的提示。由于我是 bash 魔法的新手,我不知道如何规避这个问题。
-
您对一个文件进行操作并输出到另一个文件,然后将新文件移到旧文件上。
-
使用 xargs 代替 exec