设置文本格式并在行之间添加空格

设置文本格式并在行之间添加空格

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

在此输入图像描述

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

答案1

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

xsel -b | grep . | fmt -w 80 >reformatted.txt

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

xsel -b | grep . | tr '\n' ' '; echo

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

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

awk 'length {if (previous < NR-2) print ""; previous = NR; print}'

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

答案2

你能行的:

awk -v RS=$'\n\n' -v ORS=" " '1 { print; }' file | fold

相关内容