1 min read

RLG : Manipulation de fichiers

File manipulation

Texte

Recherche

# Recherche
grep {flags} {target ("regex" | "string")} {ficher | -r dossier}
Option Description
-i Ignorer la capitalisation lors de la recherche de texte
-E Utilise les expressions régulières POSIX-ERE
-r Recherche récursive dans les sous-dossiers
-c Compte le nombre d'occurrences trouvées
-v Inverse la recherche pour exclure les correspondances
-n Affiche les numéros de ligne des résultats

Remplacement

# remplace `foo` par `bar`
sed 's/foo/bar/g' fichier.txt
# supprimer les ligne contenant `debug`
sed '/debug/d' fichier.txt`
# Remplacer un texte dans plusieurs fichiers
find {chemin_dossier} -type f -name "*.txt" -exec sed -i "s/ancien_texte/nouveau_texte/g" {} +

Le symbole {} représente le nom du fichier trouvé
-i direct sed à l'édition sur place, où le signe + à la fin permet à find de passer plusieurs fichiers à la fois à la commande sed, ce qui est plus efficace.

Example : Remplacer un texte dans les noms ET la contenu des fichiers dans le dossier actuel

# Pour renommer un module de code importé en les autre modules, etc. 
old_text="exporterBulk"
new_text="massExporter"
find . -type f -name "*$old_text*" -exec bash -c 'mv "$1" "${1//'"$old_text"'/'"$new_text"'}"' _ {} \; # remplacer dans les noms des fichiers
find . -type f -exec sed -i "s/$old_text/$new_text/g" {} + # remplacer dans les la contenu des fichiers

Édition de texte

Voir cat << 'EOF' >

Traduction

# Traduction
sudo apt install translate-shell
trans -b -I -p :fr
Option Description
-b Mode brève
-I Mode interactif
-p/-speak Jouer l'audio de la traduction/ du texte original
{lang}:{lang} Définit les langues source:cible eg, en:fr pour anglais > français
-h ou --help Affiche l'aide

Dictionnaire

sdcv $word | less

script pour télécharger Dictionnaire de la langue française par Littré, Émile
Crédit pour digitalisation: François Gannaz, francois.gannaz@littre.org

  • Les dictionnaire pour sdcv
    • $HOME/.stardict/dic
    • dois inclure trois fichiers:
      • (.*).dict.dz : dictionnaire
        • ou (.*).dict (non compressé)
      • $1.idx : index
      • $1.ifo : info

Voir aussi dict

donnée structuré (CSV,etc.)

# recherche pour `/regex/` et afficher column 1,3
awk '/regex/ {print $1, $3}' fichier.txt
# Ouvrir fichier avec libre-office calc
libreoffice --calc {chemin}

PDF

Scan enhancement

#dependence
sudo apt install imagemagick

# amélioration de contraste de scan : imageMagick
convert -density 300 input.pdf -level 33410,65535 output.pdf 

Fusion, conversion, compression, ...

Voir Ghost Script