命令类似于“粘贴 - -”,但按字母顺序排序

命令类似于“粘贴 - -”,但按字母顺序排序

我有一个文本文件,例如:

Adam
Bob
Cevin
David
Evan

如果我“粘贴 - -”它,我会得到:

Adam   Bob
Cevin  David
Evan

但我需要将下半部分添加为新列:

Adam  David
Bob   Evan
Cevin

有没有简单的方法可以做到这一点?

答案1

你可以使用:

pr -t -2 file

请注意,它会截断宽度超过页面宽度一半的行(默认情况下为 72 个字符,请参阅-w更改它的选项)。

(注意使用 GNU 实现,如果文件包含多字节或零宽度或双宽度字符,则列对齐可能会关闭)。或者:

pr -t -2 -s file

像这样用一个制表符分隔列paste(那么就没有截断)。

但请注意,它将pr换页字符 ( ^L) 视为页面分隔符。如果您的文件中不存在该字符,这不是问题。

或者与zsh

print -r -C2 -- ${(f)"$(<file)"}
  • $(<file): 抓取内容file
  • (f): 在线拆分Feed(换行)字符
  • -r: 打印r
  • -C2: 在2 C专栏。

相关内容