Archivi tag: Mac OS X

Estrarre gli indirizzi e-mail da un file di testo

Per estrarre tutti gli indirizzi email contenuti in un file di testo (ad esempio un messaggio email con tutte le intestazioni) è sufficiente l’utilizzo di grep e di altri tool da shell:

$ grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' EMAIL_SAMPLES.TXT | sort | uniq -i

Vediamo in dettaglio come funziona questa pipe:

  • grep -o scansiona il file di testo indicato e stampa tutte le stringhe che corrispondo ai criteri specificati dall’espressione regolare;
  • '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' è un’espressione regolare che identifica un indirizzo email;
  • sort ordina i risultati ottenuti da grep;
  • uniq -i filtra i risultati in modo che ciascun indirizzo appaia una sola volta.

E’ anche possibile inglobare questo comando in uno shell script:

#!/usr/bin/env bash
if [ -f "$1" ]; then
    grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' "$1" | sort | uniq -i
else
    echo "Expected a file at $1, but it doesn't   exist." >&2
    exit 1
fi

e richiamarlo dal prompt passandogli come parametro il nostro file da analizzare:

$ script.sh EMAIL_SAMPLES.TXT

 

Correggere l’orologio di Windows in dual-boot con OS X o Linux

Nei sistemi in cui Windows convive con OS X o Linux (in dual-boot o tramite Boot Camp) può capitare che l’orologio segnali l’ora sbagliata ogni volta che si riavvia il sistema in Windows.

Questo avviene perché OS X e Linux usano il GMT per l’orologio di sistema, mentre Windows cerca sempre di risincronizzarlo in base al fuso orario corrente.

I driver più recenti di Boot Camp o del sistema di virtualizzazione dovrebbero già ovviare a questo inconveniente, ma se ci imbattiamo in questo inconveniente, possiamo provare a forzare Windows in modo che anche lui consideri l’ora riportata dall’orologio come GMT.

Per farlo occorre avviare il programma regedit.exe, quindi aprire la seguente chiave di registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation. Cliccare con il tasto destro su un qualunque punto del pannello destro e dal menù contestuale selezionare Nuovo > DWORD (32-bit) Value. Rinominarle la chiave appena creata in RealTimeIsUniversal, quindi doppio-click su di essa e impostare il valore 1.

Adesso riavviare il sistema in OS X (per correggere l’ora di sistema), poi di nuovo in Windows. Adesso l’orologio dovrebbe mostrare l’ora corretta.

Trovare tutti i file che contengono una stringa di testo

Da shell eseguire il comando:

$ grep -rnw 'directory' -e "pattern"

-r o -R esegue una ricerca in tutte le sottocartelle (ricerca recursive), -n mostra il numero di linea and -w ricerca la parola intera. Se si aggiunge -l (lettera L) verrà mostrato solo il nome del file.

Oltre a questi è possibile utilizzare i parametri --exclude--include per effettuare una ricerca più mirata:

$ grep --include=\*.{c,h} -rnw 'directory' -e "pattern"

Il comando ricerca la stringa pattern solo nei file che hanno estensione .c o .h. Allo stesso modo il parametro --exclude:

$ grep --exclude=*.o -rnw 'directory' -e "pattern"

esclude dalla ricerca i file che terminano con l’estensione .o.

Anziché file è possibile include o escludere intere directory attraverso i parametri --exclude-dir--include-dir, come nell’esempio:

$ grep --exclude-dir={dir1,dir2,*.dst} -rnw 'directory' -e "pattern"

Per ulteriori opzioni è possibile consultare il manuale di grep:

$ man grep

Comunicazioni seriali nel Terminale di OS X

Per stabilire una comunicazione seriale RS232 con, ad esempio, un modem e un adattatore USB seriale, è sufficiente il Terminale di OS X che si trova di solito in Applicazioni/Utility.

Aprire l’applicazione e digitare questo comando:

ls /dev/tty.*

per avere l’elenco completo dei dispositivi presenti nel sistema. Identificare il proprio (il mio ad esempio si chiama tty.KeySerial1) e quindi digitare:

screen /dev/tty.KeySerial1 115200

dove 115200 è il baudrate, ovvero la velocità di connessione al dispositivo seriale. Inserite la velocità corretta per il vostro e potrete adesso dialogare con lui senza bisogno di installare ulteriori software.

Per terminale la connessione è sufficiente premere Control-A e poi Control-\.

Il coltellino svizzero per Mac

Forse sto per dirvi niente di nuovo e magari faccio pure la figura di quello che ha scoperto l’acqua calda, ma vorrei segnalarvi un software, o meglio, un componente per Quicktime, che vi permette di visualizzare molti formati video che non sono supportati in maniera nativa, ma che sono strausati al giorno d’oggi. Sto parlando di Perian, il coltellino svizzero per Mac OS X, secondo la definizione attribuita dal suo ideatore.
Il componente si presenta sotto forma di pannello delle preferenze, e, una volta installato, pensa in maniera autonoma alla parte di setup. Voi non dovete far altro che stare a guardare e in pochi secondi sarete già in grado di visualizzare file in formato divx, xvid, flv, mkv, ac3 e tanti altri.
Grazie a Perian non devo più installare programmi come VLC o il commerciale Divx Player, e adesso posso visualizzare tutti i miei video direttamente in Quicktime.
Un’ultima cosa altrettanto importante: Perian è Open Source!