テキストの書式設定と行の間にスペースを追加する

テキストの書式設定と行の間にスペースを追加する

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 .すべての段落を1つの段落にまとめます。テキストに段落を表示する方法がある場合にのみ、これを防ぐことができます。同じ段落の行間に空白行があり、段落間に複数の空白行がある場合は、次のように改行を削除して段落区切り文字を保持できます。

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

あなたは実行を試すことができますpdftotextPDFから直接。これはテキスト形式を再指定せず、空白行を含めることも含めない場合もあります(PDFの生成方法によって異なります)。

答え2

できます:

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

関連情報