2

我有一个看起来像这样的文本文件:

jdkjf
kjsdh
jksfs
lksfj
gkfdj
gdfjg
lkjsd
hsfda
gadfl
dfgad

[很多行,就是]

但宁愿它看起来像

jdkjf kjsdh
jksfs lksfj
gkfdj gdfjg
lkjsd hsfda
gadfl dfgad

[等等]

所以我可以在更少的页面上打印文本文件。

当然,这不是一个难题,但我想知道是否有一些出色的工具可以解决此类问题。

编辑:我不是在寻找一种从文本文件中删除所有其他换行符的方法,而是一种将文本解释为“图片”然后将它们很好地放在页面上的工具(通过编写适当的空白符号)。

4

2 回答 2

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()
于 2012-10-16T19:36:27.117 回答
0

(由于您没有命名您的操作系统,我将简单地假设 Linux、Mac OS X 或其他一些 Unix...)

您的示例看起来也可以用“joining 2 lines together”这个表达式来描述。

这可以在 shellxargs中实现(在and的帮助下awk)——但仅适用于结构类似于您的示例的输入文件(结果总是将 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

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


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

于 2012-10-17T07:33:27.713 回答