giovedì 31 luglio 2014

Contiamo le vocali [Brevi Esercizi]

Salve!

L'esercizio di oggi consiste in questo: Dato un file di testo, dobbiamo creare uno script che calcoli il numero di ciascuna vocale. Ho provato con bash, awk e Python.

Partiamo da questo file di testo (file.txt)


Python

#!/usr/bin/python
# -*- coding: utf-8 -*-

var = open("file.txt").read().lower()
vocali="aeiou"
for v in vocali:
        print  v, ": ", var.count(v)


Awk

#!/usr/bin/awk -f

BEGIN{
      c=split("aeiou",v,"")
      } 
      
{
  testo=tolower($0); 
  for (i=1;i<=c;i++) 
       print v[i] ": " gsub(v[i],"",testo)
}


Bash

cat file.txt |  fold -w1 | tr '[A-Z]' '[a-z]' | grep '[aeiou]' | sort | uniq -c | rev


Oppure, come propone il mio amico Lightuono,

grep -oi '[aeiou]' file.txt | sort | uniq -ic



Indice della rubrica "Brevi Esercizi" qui

martedì 29 luglio 2014

Imparare l'E-book [Cosa stai aspettando?]

Salve!

Oggi nasce una nuova rubrica: "Cosa stai aspettando?"

In questo spazio vi vogliamo parlare, di volta in volta, di piccoli capolavori scritti per lo più da carissimi amici. Si può trattare di E-book, libri cartacei, che abbiano a che fare con GNU/Linux, programmazione, formati liberi, ma anche romanzi, saggi e tutto ciò che riteniamo bello e assolutamente valido, indipendentemente dal fatto che siano gratis o a pagamento.

Oggi vi parliamo di "Imparare l'E-book". Si tratta di "un manuale autoprodotto che non promette la Luna, ma che vi aiuta a capire in quale parte del cielo guardare per vederla..."(Citazione di Flaminia, una delle autrici).


È un manuale che vi insegna a capire le differenze tra "formati proprietari" e "formati standard", a vedere cosa c'è dentro un file epub, ma anche a capire quale dispositivo sia meglio usare per "leggere un e-book" e dove trovare e scaricare e-book gratuiti per iniziare a prendere confidenza con questa splendida opportunità del mondo ICT.

Il manuale delle care amiche Flaminia Mancinelli e Marinella Zetti lo potete trovare in vari formati (epub, mobi e pdf) sul seguente sito  http://www.nidodellafenice.it/e-book/catalogo-nido-della-fenice/imparare-l-e-book-detail  oppure sui principali Bookshop online (da Amazon a Ultimabooks, passando per iTunes o IBS).

Buona lettura! Alla prossima :)

venerdì 18 luglio 2014

Underscore [Brevi Esercizi]

Salve.

L'esercizio di oggi consiste nell'aggiungere l'underscore, "_", ai titoli di alcune canzoni riportati in un file di testo. 


Python

#!/usr/bin/python
# -*- coding: utf-8 -*-

var = open("brani_1.txt","w")
for line in open('brani.txt'):
    var.write(line.replace(' ','_'))
var.close()


Awk

cat brani.txt | awk '{ gsub(" ","_"); print; }' > brani_1.txt

Sed

cat brani.txt | sed 's/ /_/g' > brani_1.txt

Tr

cat brani.txt |  tr ' ' '_' > brani_1.txt

Bash

var=$(cat brani.txt); echo "${var// /_}" > brani_1.txt

Alla prossima!

L'indice della rubrica "Brevi Esercizi" lo trovate qui.

mercoledì 16 luglio 2014

Creare una directory e 24 sottodirectory con date sequenziali in un solo colpo [Brevi Esercizi]

Salve!

L'esercizio di oggi è semplice ma molto utile. Ho l'abitudine di catalogare, per anno e mese, tutti gli articoli che pubblico sul blog. L'ideale in questi casi è  di creare sin da subito le sottocartelle datate dentro cui poi conservare i vari file afferenti ai post che pubblico di volta in volta.

Ok, vado al dunque.

Con una sola riga di comando voglio creare una cartella di nome "Blog" che contenga 24 sottocartelle, ognuna delle quali deve avere per nome l'anno e il mese.

$ cd Documenti

$ mkdir -p Blog/{2013..2014}-{01..12}

Come potete capire, ho preso come periodo di riferimento il 2013 e il 2014.

Ecco il risultato.


 Eh, questa è la potenza dell'espansione delle parentesi graffe... Ne parleremo presto in modo approfondito.

 L'indice della rubrica "Brevi Esercizi" lo trovate qui.

Alla prossima!