Bonjour,
Je recherche une solution pour classer un mot comme "bonjour" par ordre alphabétique pour avoir "bjnooru". Il y a bien la commande sort, mais elle ne s'applique qu'aux lignes, mais pas aux mots contenus dans cette ligne.
Merci.
Bonjour,
Je recherche une solution pour classer un mot comme "bonjour" par ordre alphabétique pour avoir "bjnooru". Il y a bien la commande sort, mais elle ne s'applique qu'aux lignes, mais pas aux mots contenus dans cette ligne.
Merci.
salut,
il n'y a pas de commande toute faite, il va falloir écrire une petite fonction, un petit algorithme
une façon de procéder peut être, pour chaque mot, de découper le mot en lettres, 1 lettre par ligne, puis de trier avec sort et enfin ré-assembler les lignes pour reformer un mot
ça c'est pour le tri des mots, restera à gérer une phrase complète composée de mots
Bonjour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ sed 's/./&\n/g'<<<"bonjour"|sort|sed ':z;N;$!b z;s/\n//g' bjnooru
: indicateur d'étiquette pour faire des branchements (inconditionnels ou conditionnels)
:z étiquette z
N Nouvelle ligne ajoutée au buffer avec un \n pour signifier le retour à la ligne.
b Saut inconditionnel
b z saut inconditionnel à l'étiquette z
1b z à la ligne 1, saut inconditionnel à l'étiquette z
$b z à la dernière ligne, saut inconditionnel à l'étiquette z
$!b z si c'est pas la dernière ligne, saut inconditionnel à l'étiquette z (Tout le fichier est dans le buffer)
s/\n//g suppression totale des \n du fichier.
Sinon, voici un exemple de saut conditionnel et son contraire (pour un cryptage facile et pas cher; le premier cryptogramme commence toujours par a, le second jamais):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ sed ':bozo;y/abcdefghijklmnopqrstuvwxyz / abcdefghijklmnopqrstuvwxyz/;s/^a/&/;T bozo'<<<"bonjour tout le monde" anmintqzsntszkdzlnmcd $ sed ':bozo;y/abcdefghijklmnopqrstuvwxyz / abcdefghijklmnopqrstuvwxyz/;s/^a/&/;t bozo'<<<"bonjour tout le monde" mlhmspyrmsryjcykmlbc
Bonjour,
D'autres solutions comme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "bonjour" | fold -w 1 | sort | tr -d "\n"
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "bonjour" | fold -w 1 | columns -s | tr -d " "
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "bonjour" | grep -o '.' | columns -s | tr -d " "Et ma préférée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "bonjour" | sed 's/./&\n/g' | columns -s | sed 's/ //g'
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "bonjour" | sed 's/./&\n/g' | columns -s | column -t -s " " -o ""
Partager