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}'
あなたは実行を試すことができますpdftotext
PDFから直接。これはテキスト形式を再指定せず、空白行を含めることも含めない場合もあります(PDFの生成方法によって異なります)。
答え2
できます:
awk -v RS=$'\n\n' -v ORS=" " '1 { print; }' file | fold