2012-10-15 76 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 

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


注意事项:您必须明确测试具有奇数行的文件。在奇数行的情况下,可能无法正确处理最后的输入行。