Categorías: Linux

Cómo usar el comando rev en Linux

Fatmawati Achmad Zaenuri / Shutterstock

El revcomando de Linux  invierte cadenas de texto. Este comando puede operar en el texto proporcionado o en un archivo, y parece engañosamente simple. Pero al igual que muchas utilidades de línea de comandos, su poder real se hace evidente cuando se combina con otros comandos.

El revcomando es una de esas simples utilidades de Linux que, a primera vista, parece ser algo extraño. Realiza una única función: invierte cadenas. Y además de poder imprimir una página de ayuda rápida ( -h) y mostrarle su número de versión ( -V), no acepta ninguna opción de línea de comandos .

Entonces,  revinvierte las cuerdas, ¿y eso es todo? ¿Sin variaciones ni opciones? Bueno, sí y no. Sí, no tiene permutaciones, pero no, eso no es todo. Este tutorial le muestra cómo combinarlo para operaciones poderosas.

Cuando lo usa  rev como bloque de construcción en secuencias de comandos más complicadas, realmente comienza a demostrar su valor. reves uno de un grupo de comandos (como  tacy yes) que son facilitadores. Es más fácil apreciar su utilidad cuando observa cómo hacen que el uso de otros comandos sea más eficiente.

Usando el comando rev

Usado en la línea de comando sin otros parámetros, revtoma cualquier entrada escrita, la invierte y luego la imprime en la ventana del terminal. Sigue haciendo esto hasta que presionas Ctrl + C para salir.

Rdo

Si escribe algo de texto y presiona Enter, revimprime la cadena al revés, a menos que le proporcione un palíndromo , por supuesto.

Pasando texto a rev

Puede utilizar echopara canalizar texto a rev.

echo uno dos tres | Rdo

También puede utilizar revpara invertir el contenido de un archivo de texto completo, línea por línea. En este ejemplo, tenemos un archivo que contiene una lista de nombres de archivo. El archivo se llama «filelist.txt».

rev filelist.txt

Cada línea se lee del archivo, se invierte y luego se imprime en la ventana del terminal.

Combinando rev con otros comandos

A continuación, se muestra un ejemplo que utiliza una canalización de entrada que llama revdos veces.

Este comando quita el último carácter de la cadena de texto. Esto podría resultar útil para eliminar la puntuación. Necesitamos usar el cutcomando para quitar el personaje .

echo 'Quitar puntuación.' | rev | cut -c 2- | Rdo

Analicemos eso.

  • echoenvía la cadena a la primera llamada a rev.
  • revinvierte la cuerda y la encaja cut.
  • La -copción (caracteres) indica cutque se devuelva una secuencia de caracteres de la cadena.
  • La 2-opción le dice cut que devuelva el rango de caracteres desde el carácter dos hasta el final de la línea. Si se proporcionara un segundo número, como por ejemplo 2-5, el rango sería de dos a cinco caracteres. Ningún segundo número significa «hasta el final de la cadena».
  • La cadena invertida, menos su primer carácter, se pasa a la revque invierte la cadena, por lo que vuelve a su orden original.

Como recortamos el primer carácter de la cadena invertida , recortamos el último carácter de la cadena original . Sí, podría hacer esto con sedo awk, pero esta es una sintaxis más sencilla.

Separando la última palabra

Podemos usar un truco similar para devolver la última palabra de la línea.

El comando es similar al anterior: nuevamente, usa  revdos veces. Las diferencias radican en la forma en que cutse utiliza el comando para seleccionar partes del texto.

echo 'Separar la última palabra' | rev | cut -d '' -f1 | Rdo

Aquí está el desglose del comando:

  • echoenvía la cadena a la primera llamada a rev.
  • revinvierte la cuerda y la encaja cut.
  • La -d' ' opción (delimitador) indica cutque se devuelva una secuencia de caracteres delimitados por un espacio.
  • La -f1 opción le dice cut que devuelva la primera sección de la cadena que no contiene el delimitador. En otras palabras, la primera parte de la oración hasta el primer espacio.
  • La primera palabra invertida se pasa a la revque invierte la cadena, por lo que vuelve a su orden original.

Debido a que extrajimos la primera palabra de la cadena invertida , recortamos la última palabra de la cadena original . La última palabra de la oración fue «palabra» y está impresa para nosotros.

Recorte de contenido de archivos

Digamos que tenemos un archivo que contiene una lista de nombres de archivo y los nombres de archivo están entre comillas. Queremos eliminar las comillas de los nombres de archivo.

Veamos el archivo:

menos filelist.txt

El contenido del archivo se muestra en formato less.

Podemos eliminar la puntuación de ambos extremos de cada línea con el siguiente comando. Este comando usa ambos  rev y  cutdos veces.

rev filelist.txt | cut -c 2- | rev | cortar -c 2-

Los nombres de archivo se enumeran para nosotros sin las comillas.

El comando se descompone así:

  • rev invierte las líneas en el archivo y las canaliza hacia cut.
  • La -copción (caracteres) indica cutque se devuelva una secuencia de caracteres de cada línea.
  • La 2-opción le dice cut que devuelva el rango de caracteres desde el carácter dos hasta el final de cada línea.
  • Las cadenas invertidas, menos sus primeros caracteres, se pasan a rev.
  • revinvierte las cuerdas, por lo que vuelven a su orden original. Se canalizan por cutsegunda vez.
  • La -copción (caracteres) indica cutque se devuelva una secuencia de caracteres de cada cadena.
  • La 2-opción le dice cut que devuelva el rango de caracteres desde el carácter dos hasta el final de cada línea. Esto «salta» la comilla inicial, que es el carácter uno en cada línea.

Mucha tubería

Aquí hay un comando que devuelve una lista ordenada de cada extensión de archivo en el directorio actual. Utiliza cinco comandos distintos de Linux.

ls | rev | cortar -d '.' -f1 | rev | ordenar | uniq

El proceso es sencillo:

  • ls enumera los archivos en el directorio actual. Estos se canalizan a rev.
  • revinvierte los nombres de archivo y los canaliza a cut.
  • cutdevuelve la primera parte de cada nombre de archivo hasta un delimitador. Le -d'.' dice cutque use el punto «.» como delimitador. La parte de los nombres de archivo invertidos hasta el primer punto son las extensiones de archivo. Estos se canalizan a rev.
  • revinvierte las extensiones de archivo en su orden original. Están canalizados sort.
  • sortordena las extensiones de archivo y canaliza los resultados a uniq.
  • uniqdevuelve una lista única para cada tipo de extensión de archivo única. Tenga en cuenta que si no hay una extensión de archivo (como para el archivo MAKE y los directorios Help y gc_help), se muestra el nombre completo del archivo.

Para darle un toque final, agregue la -copción de línea de comando (contar) al uniqcomando.

ls | rev | cortar -d '.' -f1 | rev | ordenar | uniq -c

Ahora obtenemos una lista ordenada de los diferentes tipos de archivos en el directorio actual con un recuento de cada uno.

¡Esa es una frase ingeniosa!

DrawroF og ot drawkcaB gnioG

A veces tienes que retroceder para avanzar. Y normalmente avanzas más rápido como parte de un equipo.

Agregue reva su repertorio de comandos de acceso y pronto lo usará para simplificar secuencias de comandos que de otro modo serían complicadas.

responroot

Compartir
Publicado por
responroot
Etiquetas: linux

Entradas recientes

Steamlytics: La nueva herramienta imprescindible para los gamers de Steam

  El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…

1 año hace

Cuándo reemplazar su antigua unidad flash USB

Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…

3 años hace

¿Qué es una pantalla Nano IPS?

LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…

3 años hace

10 formas de jugar con un presupuesto bajo (o nulo)

Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…

3 años hace

¿Demasiadas suscripciones? Aquí está cómo empezar a cortarlos

Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…

3 años hace

Cómo configurar la puerta de enlace predeterminada en Linux

fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…

3 años hace