2014-11-08 71 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

相關問題