我正在编辑一个简单的表格。我想把它格式化得很好。虽然我可以使用tbl、latex或类似的东西,但这似乎有点矫枉过正——纯文本真的就足够了。由于它很简单,我不妨将源作为输出。所以来源也应该看起来不错。这似乎应该是一项完美的工作column -s '|' -t——它找到分隔符并自动插入空格以根据每列中的最大宽度对齐。不幸的是,它删除了分隔符,所以我无法在进一步编辑后重新运行它。是否有任何好的文本处理工具可以幂等地执行此操作,以便将其输出用作输入?还是我需要自己写?
编辑:这是我想要的一个例子:
foo | bar | baz
abc def | 12 | 23456
Run Code Online (Sandbox Code Playgroud)
应该成为
foo | bar | baz
abc def | 12 | 3456
Run Code Online (Sandbox Code Playgroud)
当' '分离器和间隔器同时使用时,column -t效果很好。但是我的物品中有空格,所以我不能使用它。使间隔物与分隔物不同会使事情复杂化。我认为在分隔符旁边将它们视为分隔符是很有用的,但事实并非column -s '|' -t如此(尽管显然当前的行为也很有用)。
旧的diff、patch和merge程序及其现代派生的版本控制系统非常适合管理可以由多人同时编辑的源代码。
然而,它们是严格面向行的,因此往往会落在更自由形式的文本上。在我的特殊情况下,我正在处理latex由多人编辑的文件,并且文本不断重排——在段落中添加或减去一个词会改变段落其余部分的行边界。有一些diff工具可以突出显示一行中的更改(许多现代 GUI 工具),甚至处理重排文本(wdiff, git diff --word-diff)。但是,我没有发现任何可以处理三向合并或修补的东西。
有谁知道一个可以自动执行此操作的好工具?(是的,我可以将文本切碎,以便将每个单词(和一行空白)放在单独的行上。像 for 的格式这样的东西git diff --word-diff=porcelain可能不是一个糟糕的选择。但要使这种可逆和强大的自动合并(包括合并冲突标记)并不是很简单)。
git合并驱动程序的奖励积分。