GNU/Linux >> Tutoriels Linux >  >> Linux

Comment inverser une liste de mots dans une chaîne shell ?

si vous avez besoin d'un shell pur, sans outils externes, considérez ceci :

reverse_word_order() {
    local result=
    for word in [email protected]; do
        result="$word $result"
    done
    echo "$result" 
}

reverse_word_order "$str"

Sinon tac peut vous aider immédiatement :

echo -n "$str" | tac -s' '

ou

tac -s' ' <<<"$str" | xargs 

Oui, vous pouvez essayer ces commandes,

Pour chaîne ,

echo "aaaa eeee bbbb ffff cccc"|tr ' ' '\n'|tac|tr '\n' ' '

Pour la variable ,

echo $str|tr ' ' '\n'|tac|tr '\n' ' '

Vous pouvez utiliser awk comme suit :

echo "$str" | awk '{ for (i=NF; i>1; i--) printf("%s ",$i); print $1; }'

Linux
  1. Comment répertorier un type spécifique de fichiers dans des répertoires récursifs en shell ?

  2. Comment gérer plus de 10 paramètres dans le shell

  3. Dans un shell Linux, comment puis-je traiter chaque ligne d'une chaîne multiligne ?

  4. Utilitaires du shell Linux :convertir une liste d'hexadécimaux en une liste de décimales

  5. Comment supprimer une chaîne d'un fichier via des scripts shell ?

Comment lister toutes les bases de données dans PostgreSQL

Comment utiliser la commande Linux SS

Comment configurer un proxy inverse Nginx

Comment supprimer un point d'accès de la liste enregistrée ?

Comment changer de shell sous Linux

Comment faire écho dans le fichier