/bash-intro.workshop

Workshop de introducción a Bash.

Primary LanguageShell

Intro a bash

Bash es un lenguaje de programación atípico. Sí, es un lenguaje de programación. Su fortaleza está en invocar distintos programas y hacer que interoperen entre ellos.

Además viene con un conjunto de herramientas para estos casos de uso que son muy convenientes.

Un ejemplo, sacado de Quora, ilustra estos beneficios:

Si queremos buscar las 10 palabras más comunes en un archivo de texto, la solución en Python podría ser algo así

from collections import defaultdict
from string import punctuation

wordcount = defaultdict(int)

for line in open('hamlet.txt'):
    line = ''.join([char for char in line.lower()
                   if char not in punctuation])
    for word in line.split():
        wordcount[word] += 1

for key in sorted(wordcount, key=wordcount.get, reverse=True)[:10]:
    print(key, wordcount[key])

La solución en bash por otro lado

tr A-Z a-z < hamlet.txt | tr -sc a-z '\n' | sort | uniq -c | sort -rn | head

Por supuesto es más legible, aún sin saber Python, la primera respuesta que la segunda pero se ve que esta última es bastante más concisa.

Siguiente