用行间空格格式化文本

whi*_*ngs 2 text-formatting

我正在从 pdf 复制文本,当我将其粘贴到文本编辑器中时,结果如下:

在此处输入图片说明

文本不会延伸到右边距而是看起来像一列,并且行之间有一个空格。我希望文本扩展到右边距并且行之间没有空格。我可以手动格式化它,但它非常耗时。有没有一个程序可以让我自动化这个?

Gil*_*il' 5

grep .删除所有空行。您可以通过管道将结果导入fmt以将文本重新格式化为您选择的宽度。如果您在 X 剪贴板中有文本,xsel -b将从那里获取它。

xsel -b | grep . | fmt -w 80 >reformatted.txt
Run Code Online (Sandbox Code Playgroud)

如果您根本不想换行,可以用空格替换换行符,但在末尾添加换行符。

xsel -b | grep . | tr '\n' ' '; echo
Run Code Online (Sandbox Code Playgroud)

输出不会很好,因为根据你的图像,连字符丢失了,所以“vul-/gar”输出为“vul gar”,“Thanks-/giving”为“Thanksgiving”等。

grep .将所有段落折叠为一个。只有在文本中以某种方式标记段落时,您才能避免这种情况。如果同一段落的行之间有一个空行,并且段落之间至少有两个空行,则可以删除换行符并保留段落分隔符,如下所示:

awk 'length {if (previous < NR-2) print ""; previous = NR; print}'
Run Code Online (Sandbox Code Playgroud)

您可以尝试pdftotext直接在 PDF 上运行。这不会重新格式化文本,并且可能包含也可能不包含空行(这取决于 PDF 的制作方式)。