CAT

cat, qui vient de l'anglais catenate, synonyme de concatenate (soit : «concaténer»), est une commande Unix standard permettant de concaténer des fichiers ainsi que d'afficher leur contenu sur la sortie standard — habituellement un terminal Unix ; le plus souvent des « shells », notamment Bash, zsh, Csh, etc. Dans les systèmes Microsoft, son équivalent est la commande type

mettre tous les mots à la ligne :

cat fichier_1.txt | tr " " "\n"

tr veut dire traduire donc remplacer quelque chose par autre chose. Ici, on remplace les espaces " " par un saut de ligne "\n".

+ supprimer les ponctuations :

cat fichier_1.txt | tr " " "\n" | tr -d [:punct:]
cat fichier_1.txt | tr " " "\n" | tr -d "[:punct:]"

-d= delete [:punct:]=ponctuation 1

+ mettre tous les mots en bas de casse :

cat fichier_1.txt | tr " " "\n" | tr -d [:punct:] | tr [:upper:] [:lower:]
cat fichier_1.txt | tr " " "\n" | tr -d "[:punct:]" | tr "[:upper:]" "[:lower:]"

+ classer les mots par ordre alphabétique :

cat fichier_1.txt | tr " " "\n" | tr -d [:punct:] | tr [:upper:] [:lower:] | sort  
cat fichier_1.txt | tr " " "\n" | tr -d "[:punct:]" | tr "[:upper:]" "[:lower:]" | sort 

sort veut dire: trier les lignes par ordre alphabétique (par défaut). Si vous ajouter -r vous aurez l'ordre alphabétique inversé.

+ supprimer les mots en double :

cat fichier_1.txt | tr " " "\n" | tr -d [:punct:] | tr [:upper:] [:lower:] | sort | uniq
cat fichier_1.txt | tr " " "\n" | tr -d "[:punct:]" | tr "[:upper:]" "[:lower:]" | sort | uniq

uniq veut dire unique, donc ne répète pas les doublons (yeah!), mais cela peut être intéressant de visualiser la récurrence des mots ;-)

+ sauvegarder le résultat dans un fichier:

cat fichier_1.txt | tr " " "\n" | tr -d [:punct:] | tr [:upper:] [:lower:] | sort | uniq > liste_mots_1.txt
cat fichier_1.txt | tr " " "\n" | tr -d "[:punct:]" | tr "[:upper:]" "[:lower:]" | sort | uniq > liste_mots_1.txt

Créer un index d'un livre

cat mon-texte.txt | tr " " "\n"  | sort | uniq -c

-c est une option de la commande 'uniq' qui permet de compter le nombre d'occurences dans un texte

Créer un poème aléatoire :

cat fichier_1.txt | tr " " "\n" | uniq | shuf | tr "\n" " " | cut -c-100

Recrée un texte en combinant les mots aléatoirement et s'arrette après les 100 premières lettres. shuf (ou gshuf 2 pour les macs), remélange aléatoirement la liste des mots, cut coupe le texte après 100 lettres.

cat text.txt | tr " " "\n" | uniq | shuf | tr "\n" " " | head

Ici, head veut dire qu'il combine les mots issus des 10 premiers paragraphes du texte de base.

Remplacer des lettres dans un texte

cat a.txt |  tr e i 

Ici on remplace tous les e par des i

Remplacer des mots dans un texte

cat a.txt | sed -e "s/livre/écran/g" > b.txt

et ensuite les afficher dans le terminal

grep "écran" b.txt

Combiner deux fichiers

cat a.txt b.txt > ab.txt

A vous maintenant de combiner et créer vos propres remix!


  1. !!Les guillemets entre les sont importants sur mac OS pour spécifier toutes les classes de caractères. Plus d'info ici: https://ss64.com/bash/tr.html 

  2. Pour pouvoir utiliser gshuf il faut installer le programme Coreutils :brew install coreutils ou sudo port install coreutils