[IT] Bash: come interfacciarsi con Apple Mail via script (Mac OS X Leopard) – Parte 4/4

Parte 1/4, Parte 2/4, Parte 3/4

Introduzione:

L’ultimo script che vi presento non si interfaccia direttamente con Apple Mail, bensì funge da strumento di supporto al primo script,trasformando il file CSV prodotto da quest’ultimo in un “cloud text”, ovvero in un file di testo da usare per ricavare un tag cloud.

Lo script csv2cloudtext.sh:
Mettiamo caso che abbiate a disposizione una lista di parole e la relativa ricorrenza, nella forma:

inutile,5
microcefalo,3
tronista,2
violenza,1

e desideriate automaticamente ricavarne un file di testo strutturato come segue:

inutile
inutile
inutile
inutile
inutile
microcefalo
microcefalo
microcefalo
tronista
tronista
violenza

da incollare in servizi come Tagcrowd.com (quello che adopero io) per ricavarne un ben più leggibile tag cloud, ovvero una nuvola grafica in cui le parole vengano evidenziate in proporzione alla loro ricorrenza.

Ecco, il mio script fa esattamente questo.

Io lo utilizzo esclusivamente sui files “_words-list.csv” generati dal mio script “mail2topwordslist.sh”, ma può essere adoperato senza problemi su qualsiasi CSV che segua lo schema “nome,quantità”.

Prima di dare il vostro file CSV in pasto allo script, vi consiglio di dargli una ripulita a mano da parole/caratteri inutili etc, e di fissare una soglia (es. 250) sotto la quale rimuovere tutte le parole, perchè comunque non verrebbero visualizzate nel tag cloud.

Lo script salva il cloudtext in un file di testo nella stessa cartella da cui viene lanciato. Per eseguirlo, da Terminale entrate nella cartella dello script e date i comandi:


chmod +x csv2cloudtext.sh #per dargli i permessi di esecuzione
sh csv2cloudtext.sh #per lanciarlo

Il codice sorgente
Ecco il codice dello script. Commenti, variabili e messaggi a schermo sono in inglese per renderlo comprensibile anche all’estero qualora servisse a qualche straniero.


#!/bin/sh

# eldino's csv2cloudtext 1.0
# this script takes a csv file as input and create
# a text file that is easily usable to obtain a tag cloud

# get the folder from which the script is running
# source: http://www.mydatabasesupport.com/forums/shell/176524-currently-executing-script-path.html
prog_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P) && prog_path=$prog_path/$(basename -- "$0")
scriptFolder=$(echo $(dirname $prog_path)/)

# define temp csv file
temp_csv="$scriptFolder/temp_csv.txt"

# functions

# create a copy of the csv in the script folder and
# add a blank line to the end of it that will act
# as "stop point" for the script
add_stop_to_csv () {

 cat $* > $temp_csv
 echo "" >> $temp_csv

}

gimme_csv () {

 IFS=","
 exec < $*
 while read word quantity
 do
 echo "$word $quantity"

 if [ -n "$quantity" ]
 then
 x=0;
 while [ "$x" -lt $quantity ]; do
 echo $word >> $scriptFolder/cloud_text.txt
 x=$(expr $x + 1)
 done
 fi
 done

}

# routine
clear
echo "eldino's csv2cloudtext 1.0"
echo "---------------------------------------------------"
rm -f $scriptFolder/cloud_text.txt
echo
echo "Type the path to the .CSV file or just drag 'n' drop it:"
read file_csv
echo

add_stop_to_csv $file_csv

gimme_csv $temp_csv
rm -f $scriptFolder/temp_csv.txt

echo "Ok!"

Screenshots:
Di seguito posto qualche screenshot dello script in funzione, tanto per darvene un’idea 🙂

Advertisements

Una risposta a [IT] Bash: come interfacciarsi con Apple Mail via script (Mac OS X Leopard) – Parte 4/4

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: