Je voudrais sortinger les caractères dans une chaîne.
Par exemple
echo cba | sort-command abc
Existe-t-il une commande qui me permette de le faire ou devrais-je écrire un script awk
pour parcourir la chaîne et la sortinger?
echo cba | grep -o . | sort |tr -d "\n"
Veuillez trouver les méthodes utiles suivantes:
coquille
Chaîne de sorting basée sur ses caractères:
echo cba | grep -o . | sort | tr -d "\n"
Chaîne séparée par des espaces:
echo 'dd aa cc bb' | tr " " "\n" | sort | tr "\n" " "
Perl
print (join "", sort split //,$_)
Rubis
ruby -e 'puts "dd aa cc bb".split(/\s+/).sort'
Frapper
Avec bash, vous devez énumérer chaque caractère d’une chaîne, en général quelque chose comme:
str="dd aa cc bb"; for (( i = 0; i < ${#str[@]}; i++ )); do echo "${str[$i]}"; done
Pour le sorting du tableau, veuillez vérifier: Comment sortinger un tableau en bash ?
C’est de la sortingche (parce qu’elle utilise Perl), mais ça marche. 😛
echo cba | perl -pe 'chomp; $_ = join "", sort split //'
Un autre paquebot
$ echo cba | perl -F -lane 'print sort @F' abc $ # for reverse order $ echo xyz | perl -F -lane 'print reverse sort @F' zyx $ # or $ echo xyz | perl -F -lane 'print sort {$b cmp $a} @F' zyx
-l
@F
@F
est imprimé Cela fonctionnera également en ligne pour un fichier d’entrée donné
$ cat ip.txt idea cold spare umbrella $ perl -F -lane 'print sort @F' ip.txt adei cdlo aeprs abellmru