Michele Liberi software

versione 1.03, 1 settembre 2022

Michele Liberi
mail: mliberi@gmail.com
cell: 3485211456

liberix

ecut, estrazione dati da un file di testo

Il comando ecut trae spunto dal comando UNIX standard cut, ma è molto più potente. Infatti racchiude in sé le funzionalità di:

Con ecut si può fare con più semplicità ciò che spesso viene fatto con il comando awk, e molto di più!.

Nato per far fronte all'esigenza di estrarre in modo rapido informazioni da grossi files di dati, ecut è un programma estremamente versatile che trova impiego in numerose applicazioni.

ecut legge uno o più files di testo, poi esegue in sequenza le seguenti operazioni:

  1. taglio orizzontale: è possibile specificare (opzione -R) uno o più intervalli di righe da processare, le altre righe verranno ignorate;
  2. verifica sul contenuto della riga: è possibile specificare una o più condizioni combinate tra loro con operatori logici (NOT, AND, OR) che determinano se processare o ignorare la riga (opzioni -S -t -v -a -r -c -n -d);
  3. taglio verticale: è possibile specificare (opzione -k) una chiave di estrazione con una sintassi versatile e sofisticata;
  4. eliminazione delle chiavi duplicate: (opzione -u)
  5. applicazione di uno o più criteri di ordinamento in cascata: (opzione -o)

Il tutto in un'unica lettura ed in modo estremamente ottimizzato ed efficiente.

Esempio 1: lista dei filesystems con livello di riempimento superiore al 90%, oppure inferiore al 30%

df -k |ecut -R1, -a'$4' -n'>90' -n'<30'

Significato opzioni:

Se aggiungo l'opzione

-o^n'$4' le righe in output verranno prodotte in ordine crescente di livello di riempimento.

Esempio 2: lista degli utenti con uid compreso tra 1000 e 1500,

ecut </etc/passwd -S: -a#3 -n'!<1000' -a#3 -n'!>1500' -k#1

Significato opzioni:

Potrei fare mille altri esempi, ma la lettura diventerebba alquanto noiosa...

Per informazioni sulla sintassi per definire intervalli di valori o chiavi di estrazione lanciare il comando ecut -g.

Per informazioni sull'uso del comando lanciare ecut -h.