2014-11-08 163 views
1

我有一个文本文件,然后我想对齐它。 我用column -t myfile > newfile. 但是这个命令删除了一个分隔两句话的空行。我现在该怎么办?请帮帮我。如何通过Linux命令提示符对齐文本?

Myfile: a c    Used column -t : a c  Desired file: a c 
     bd e        bd e     bd e 
     .         .      . 
              f g      
     f g         hi j     f g 
     hi j               hi j 
+0

你可能会使用'awk'。注意'fmt'可以重新格式化你的texte。 – 2014-11-08 22:36:56

+0

请帮我了解更多细节,Basile?谢谢。 :) – Alice 2014-11-11 02:13:56

回答

1

column -e -t myfile > newfile

-e是'不要忽略空行'的选项。

如果-e选项不可用 - 它似乎是由Debian和衍生物被修补在,因此可能无法使用在其他系统上 - 一组装机是:

sed -e 's/^$/###xxx###/' myfile | column -t | sed -e 's/###xxx###//'

其中###xxx###是一个字符串,你不会看到你的文件中的任何地方。空行在sed之前用这个字符串填充,然后它们碰到column命令,这会阻止它们被悄悄丢弃。遵循column命令,奇数字符串将被sed删除。

+0

谢谢托尼,但它注意到列:未知选项-e:'( – Alice 2014-11-08 13:05:21

+0

你能检查你在e之前只有一个破折号,如果它仍然不起作用,建议你正在使用哪个系统(包括版本)?'-e'选项适用于您提供的示例文件。 – Tony 2014-11-08 21:05:35

+0

@Alice,请参阅上面的编辑,这些编辑为没有'-e'选项的系统提供解决方法 – Tony 2014-11-08 22:27:39