-
BASH > Copier du texte d’un PDF
Parfois, le texte d’un PDF ressemble à ça :
Cette phrase est cou- pée en plusieurs césu- res. Pour y remédier, nous allons devoir avoir re- cours à un script.
Et lorsqu’on le copie-colle, les tirets des césures sont également copiés :
Cette phrase est cou- pée en plusieurs césu- res. Pour y remédier, nous allons devoir avoir re- cours à un script.
Alors que l’on veut le texte formaté de cette façon :
Cette phrase est coupée en plusieurs césures. Pour y remédier, nous allons devoir avoir recours à un script.
LES ÉTAPES
Il faut placer des repères à la fin de chaque ligne comportant un tiret de césure :
sed 's/\([[:alpha:]]\)-$/\1@@@/' LeTexte Cette phrase est cou@@@ pée en plusieurs césu@@@ res. Pour y remédier, nous allons devoir avoir re@@@ cours à un script.
Puis, on remplace le point final d’une phrase avec
qqq. Cela indique la fin d’un paragraphe.sed 's/\([[:alpha:]]\)-$/\1@@@/;s/\.$/.qqq/' LeTexte Cette phrase est cou@@@ pée en plusieurs césu@@@ res.qqq Pour y remédier, nous allons devoir avoir re@@@ cours à un script.qqq
On ajoute un espace à chaque fin de ligne :
sed 's/\([[:alpha:]]\)-$/\1@@@/;s/\.$/.qqq/;s/$/ /' LeTexte \ Cette phrase est cou@@@ pée en plusieurs césu@@@ res.qqq Pour y remédier, nous allons devoir avoir re@@@ cours à un script.qqq
On supprime les sauts de ligne :
sed 's/\([[:alpha:]]\)-$/\1@@@/;s/\.$/.qqq/;s/$/ /' LeTexte | tr -d '\n' Cette phrase est cou@@@ pée en plusieurs césu@@@ res.qqq Pour y remédier, nous allons devoir avoir re@@@ cours à un script.qqq
On supprimer les @@@ suivis d’un espace, et on remplace les qqq par deux sauts de ligne :
sed 's/\([[:alpha:]]\)-$/\1@@@/;s/\.$/.qqq/;s/$/ /' LeTexte | tr -d '\n' \ | sed 's/@@@ //g;s/qqq /\n\n/g' Cette phrase est coupée en plusieurs césures. Pour y remédier, nous allons devoir avoir recours à un script.
SCRIPT FINAL
Code final :
#!/bin/bash xclip -o \ | sed 's/\([[:alpha:]]\)-$/\1@@@/;s/\.$/\.qqq/;s/$/ /' \ | tr -d '\n' \ | sed 's/@@@ //g;s/qqq /\n\n/g' \ | xclip -i exit
Le script est couplé à
xclip. Pour l’utiliser, il faut :1 - Copier ce que l’on veut dans le clipboard
2 - Lancer le script
3 - Clic-milieu pour coller