GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo invertir una lista de palabras en una cadena de shell?

si necesita shell puro, sin herramientas externas, considere esto:

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

reverse_word_order "$str"

De lo contrario tac puede ayudarte de inmediato:

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

o

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

Sí, puedes probar estos comandos,

Para cadena ,

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

Para la variable ,

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

Puedes usar awk de la siguiente manera:

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

Linux
  1. Anteponer y agregar una cadena a cada elemento de $* en Shell?

  2. ¿Cómo eliminar el punto de acceso de la lista guardada?

  3. ¿Cómo enumerar tipos específicos de archivos en directorios recursivos en Shell?

  4. Cómo manejar más de 10 parámetros en shell

  5. En un shell de Linux, ¿cómo puedo procesar cada línea de una cadena de varias líneas?

Cómo enumerar todas las bases de datos en PostgreSQL

Cómo usar el comando SS de Linux

Cómo imprimir la salida estándar de un comando en orden inverso en un shell de Linux

¿Cómo causar el error "Lista de argumentos demasiado larga"?

¿Cómo enumerar todas las palabras clave de Shell?

Cómo hacer eco en un archivo