Existe un comando que realiza esta operación, rev. De acuerdo a la descripción que proporciona la documentación funciona de la siguiente manera:

Copia los archivos especificados a la salida estandar, invirtiendo el orden de los caracteres de cada línea. Si no se especifican ficheros, rev lee de la entrada estandar (el teclado).

Algunos ejemplos:



echo "elbauldelprogramador" | rev

Dará el siguiente resultado:

rodamargorpledluable

Es posible usar la siguiente sintaxis:

rev<<<"Esta línea es una prueba"

Salida:

abeurp anu se aeníl atsE

Ejemplo en Perl

perl -ne 'chomp;print scalar reverse . "n";'<<<"elbauldelprogramador"

Ó

echo 'elbauldelprogramador' | perl -ne 'chomp;print scalar reverse . "n";'

Script bash para invertir cadenas

#!/bin/bash
input="$1"
reverse=""

len=${#input}
for (( i=$len-1; i>=0; i-- ))
do
   reverse="$reverse${input:$i:1}"
done

echo "$reverse"

Para ejecutarlo escribimos lo siguiente en la terminal:

./script elbauldelprogramador

En los comentarios de la fuente original en nixcraft (enlace al final de la entrada) un lector escribió dos ejemplos más, en python y PHP:

Ejemplo en python:

echo foo | python -c 'import sys;print(sys.stdin.read().strip()[::-1])'
python -c 'import sys;print(sys.stdin.read().strip()[::-1])' <<< foo

Ejemplo en PHP:

echo foo | php -r 'print strrev(trim(fgets(STDIN)));'
php -r 'print strrev(trim(fgets(STDIN)));' <<< foo


Fuente original

NixCraft »» Visitar sitio

Índice