27Jun

La guía para principiantes de Shell Scripting 3: Comandos más básicos &Cadenas

click fraud protection

Has aprendido cómo crear guiones, usar argumentos y compilar para bucles. Ahora, echemos un vistazo a algunos comandos más básicos, la manipulación de archivos de texto y la redirección de entrada y salida a archivos y otros comandos.

Algunos comandos útiles básicos

Ya le hemos dado un desglose básico de los scripts de shell y un esquema basado en ejemplos de bucles for, pero asegúrese de revisar esos artículos si se ha perdido nuestra guía de scripts de shell hasta el momento.

La línea de comandos es maravillosa por muchas razones, y la redirección es una de las más destacadas. Si tuviera que anotar y reproducir la salida de cada comando para tomar otras medidas o usar eso para otra cosa, entonces todos nos habríamos vuelto locos hace mucho tiempo. La redirección nos permite usar esa salida y guardarla o usarla inmediatamente como entrada para otro comando. También podemos usar archivos como entradas para otros comandos.

Antes de seguir, cubramos algunos comandos básicos que pueden ser útiles en muchos lugares diferentes.

instagram viewer

echo - Este comando simplemente imprime( muestra) la totalidad de su argumento en la línea de comando como salida

echo argument con espacios

Como puede ver, los caracteres especiales deben "escaparse" para que sean tratados normalmente. Esto se hace usando una barra invertida( \) delante del personaje. Es una mejor idea usar comillas. El comando echo también funciona con variables.

Como puede ver, las comillas simples y dobles se comportan de manera diferente. Para obtener más información, consulte ¿Cuál es la diferencia entre las cotizaciones individuales y dobles en el Bash Shell?

cat : este comando muestra el contenido de los archivos de texto como salida.

cat file_to_be_read

Digamos que creamos este archivo de texto en nano:

Cuando usamos el comando cat en el archivo, podemos ver su salida.

grep: este es uno de los comandos más potentes y útiles disponibles para usted en Linux. Significa impresión de expresión global / regular. Mira a través de un archivo e imprime cualquier línea que coincida con un patrón en particular. Debido a que este patrón se basa en la "expresión regular", una línea concisa puede producir una multitud de patrones para que coincidan. Sin embargo, para no, puede ingresar un charrán para buscar.

archivo de patrón grep

Te lo aseguro, grep puede hacer más, pero por ahora vamos a apegarnos a las cosas más fáciles.

Redirigir salidas

Para redirigir la salida de un comando a un archivo, usamos un carácter especial, el símbolo mayor que( & gt;).

Cambiemos nuestra lista, ¿de acuerdo? Ingrese el siguiente comando:

echo pepperoni & gt;list

Puede ver que echo ya no muestra la línea, y cuando miramos el contenido del archivo "list", vemos lo que hicimos eco allí.

También tenga en cuenta que los contenidos anteriores de "lista" se eliminaron. Inténtalo de nuevo:

Esto puede ser útil cuando quieras reutilizar un archivo, pero a menudo solo queremos agregarlo a un archivo existente. Para esto, usamos dos símbolos consecutivos mayores que:

echo yellow peppers & gt; & gt;lista

¡Fácil! Usemos este comando para crear una lista más grande, ¿o sí?

Ahí vamos. Creo que se puede ver por qué tantos geeks usan la línea de comandos para hacer listas de cosas por hacer y cosas por el estilo, pero es aún mejor.

Tomemos el resultado de un comando y lo ponemos en un archivo:

ls -al / & gt;~ / rootlist

Hacer listas de archivos, editarlos y luego ejecutar comandos en los que desea nunca ha sido tan simple. Y, mientras hacemos estas funciones básicas en la línea de comandos, también funcionan bien en los guiones.

Piping, o Chaining

Piping se llama así porque utiliza la tubería,( |; compartida con la tecla \ en la mayoría de los teclados).Básicamente, toma la salida de un comando y lo alimenta directamente a otro. Puede crear largas cadenas de comandos para obtener un resultado deseado muy específico de esta manera, y es muy conveniente para comandos como grep.

Actúa de manera muy similar a "& gt;", excepto que se puede encadenar varias veces y su efecto es más general, ya que no necesita pasar por un archivo de texto.

Como puede ver, grep distingue entre mayúsculas y minúsculas. Puede usar el indicador "-i" para hacer que ignore el caso.

Redirigir entradas

También puede tomar entradas de archivos para comandos utilizando el símbolo menor que( & lt;).

cat & lt;lista

"¡Eso no es diferente de usar un argumento!", Podría decir. Bueno, estarías en lo correcto en este caso. Donde la redirección de la entrada realmente es útil es encadenar comandos juntos.

Digamos que queremos filtrar cualquier palabra que tenga "pep" en él desde nuestro archivo de "lista" actual en un nuevo archivo llamado "revisiones".

grep pep & lt;lista & gt;revisiones

Repasemos este comando y agreguemos algunos ordenamientos.

grep pep & lt;lista |ordenar & gt;revisiones

Esto usará "pep" como el término de búsqueda de la "lista" del archivo de entrada, clasifíquelo en orden alfabético( todos los términos en mayúscula seguidos de todos los términos en minúsculas), luego déjelo en el archivo "revisiones".

Para ilustrar el comando de clasificación, veamos el siguiente ejemplo:

Como puede ver, al agregar el distintivo "-f" al comando de clasificación, puede ignorar el caso. Esto nos facilita la alfabetización de líneas en archivos de texto e ignorar las mayúsculas cuando no es importante.

Una secuencia de comandos simple

Creemos una secuencia de comandos que tenga la siguiente forma: script

lista de búsqueda archivo de lista

Tomará el término y usará grep para buscar en un archivo de lista, ordenar los resultados y luego enviarlos a otro archivo.

Aquí está el directorio en el que probaremos el script:

Y, podemos crear una lista de lo que está aquí, luego ejecutar el script.

¡Aquí tienes! Cuanto más aprenda las reglas de las expresiones regulares, con mayor precisión podrá armar un comando de búsqueda.¡Y todo lo que sea válido entre comillas puede ser sustituido por su primer argumento!

En lo que respecta a la clasificación, puede hacer más que ordenar alfabéticamente. Eche un vistazo a la página de manual para algunos de los siguientes comandos:

  • tsort - una función de clasificación topológica más avanzada
  • tr - le permite asignar caracteres específicos a otros caracteres, y transcribir entre ellos.
  • uniq - elimina cualquier awk
  • no único( leído: duplicado) - un lenguaje / función de procesamiento de texto realmente avanzado que se puede usar para separar campos en nombres de archivos cortar, pegar / unir
  • - comandos útiles para aislar campos de archivos de texto y agregarnuevos datos en columnas
  • look - busca como grep does, pero usa un archivo de diccionario( que puede ser especificado por el usuario) para la búsqueda
  • wc - le permite obtener conteo de palabras, recuento de líneas, conteo de caracteres y más

Echamos un vistazoen algunos aspectos básicos actuales que pueden ser tan útiles en la línea de comandos como en los scripts. Los datos basados ​​en texto a menudo están en el corazón de las cosas que usamos a diario, por lo que es clave poder trabajar con él, buscarlo y manipularlo.

¿Cuáles son algunos de tus scripts favoritos?¿Tiene scripts de uso especial para archivos de texto?¡Comparte lo que sabes en los comentarios!