2012-10-15 111 views
2

我有一個文本文件,它看起來像這樣列的文本文件:我想打印在

jdkjf
kjsdh
jksfs
lksfj
gkfdj
gdfjg
lkjsd
hsfda
gadfl
dfgad

[非常多的線路,即]

但寧願像它看起來像

jdkjf kjsdh
jksfs lksfj
gkfdj gdfjg
lkjsd hsfda
gadfl dfgad

[等等]

所以我可以在較小的nu上打印文本文件幾頁。

當然,這不是一個難題,但我想知道是否有一些優秀的工具用於解決這些問題。

編輯:我沒有找到一種方法來從文本文件中刪除所有其他換行符,而是一種將文本解釋爲「圖片」的工具,然後很好地將這些文本放在頁面上(通過編寫適當的空格符號)。

回答

0

你可以使用這個python代碼。

tables=input("Enter number of tables ") 
matrix=[] 
file=open("test.txt") 
for line in file: 
matrix.append(line.replace("\n","")) 
if (len(matrix)==int(tables)): 
    print (matrix) 
    matrix=[] 
file.close() 
0

(既然你不命名您的操作系統,我會簡單地認爲在Linux,Mac OS X或一些其他的Unix ...)

你的例子看起來它也可以是由表達式「將兩條線連接在一起」描述。

這可以在shell(與xargsawk幫助下)來實現- 但這也只是針對結構像你的榜樣的輸入文件(結果常常在2分線的話,不論如何每一個包含許多字):

cat file.txt | xargs -n 2 | awk '{ print $1" "$2 }' 

這也與awk單獨(這一次它真的加入2個全行實現,而不管每個人多少字包含):

awk '{printf $0 " "; getline; print $0}' file.txt 

或者使用sed -

sed 'N;s#\n# #' < file.txt 

此外,xargs能做到這一點:

xargs -L 2 < file.txt 

我相信其他人可以想出其他幾十個,完全不同方法和命令行組合...


注意事項:您必須明確測試具有奇數行的文件。在奇數行的情況下,可能無法正確處理最後的輸入行。