Invertir una string | Programación de shell

Se nos da una string y tenemos que usar el script de shell para imprimirla en el orden inverso. Preguntado en FICO Ejemplos:

Input : geeksforgeeks 
Output :skeegrofskeeg

Algoritmo

step 1:- Take user input in a string
step 2:- Findthe length of given string using length function
step 3:- Set i = length-1 and run loop till i <= 0
step 4:- echo the $i
step 5:- repeat step 3 and 4 till i==0
step 6:- end

CPP

// reverse a string using shell script
// reverse a string is in linux and unix
 
#!/ bin / bash
// reading a string
// using via user input
read - p "Enter string:" string
    // getting the length of given string
    len
    = $
{
    #string
}
// looping for reversing a string
// initialize i=len-1 for reversing a string and run till i=0
// printing in the reverse order of the given string
for ((i = $len - 1; i >= 0; i--))
    do
    // "${string:$i:1}"extract single character from string.
    reverse = "$reverse${string:$i:1}" done
        echo "$reverse"

Producción:

skeegrofskeeg

Invierta una string en secuencias de comandos de shell usando Comandos

  1. Comando rev: se utiliza para invertir las líneas de un archivo. Este comando puede tomar entradas estándar como se muestra a continuación.
$ echo welcome | rev

emoclew
  1. Nota: El comando rev no está presente en todas las versiones de Unix.
  2. Comando awk : usando la función de substring, puede invertir una string:
$ echo welcome | awk 
'{ for(i = length; i!=0; i--)
x = x substr($0, i, 1);
}END
{print x}'

emoclew
  1. Esta lógica es la lógica común utilizada en cualquier lenguaje de programación para invertir una string: comience desde la última posición de la string y siga imprimiendo un carácter hasta que se alcance la primera posición. Hacemos un bucle en la cuerda comenzando desde la última posición y avanzando hacia el principio. El comando de longitud proporciona la longitud del argumento que se le pasa. Sin argumentos, la longitud da la longitud de la línea actual, que es $0. El comando substr en awk extrae un carácter a la vez y se agrega a la variable resultante x que se imprime al final usando la etiqueta END.
  2. Comando sed : Aquí se utilizan un total de 2 comandos sed.
$ echo welcome | sed 's/./&\n/g' | tac | sed -e :a -e 'N;s/\n//g;ta'

emoclew
  1. Para comprender correctamente este comando, divídalo en cada tubería y observe la salida. El primer sed lee un carácter (.) y agrega un carácter de nueva línea (\n) detrás de cada carácter coincidente (&). El comando tac invierte el contenido de un archivo o la entrada estándar. El segundo comando sed ahora une todas las líneas. Nota: El comando tac no está presente en todas las versiones de Unix.
  2. Solución Perl: Usar la función perl incorporada inversa.
$ echo welcome | perl -ne 'chomp;
print scalar reverse;'

emoclew
  1. La función inversa invierte todos los elementos presentes en una lista. En el contexto escalar como se usa aquí, también invierte una string. El comando chomp se usa para eliminar el carácter de nueva línea en la string.

Este artículo es una contribución de Ajay Puri(ajay0007) . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *