Ciao amici. In questo post imparerai come usare il comando select in Linux. Abbiamo testato questo tutorial su Debian 11, ma dovrebbe funzionare su Ubuntu 20.04 e derivati.
Qual è il comando select?
Il comando select è uno strumento creato con Rust che vuole essere un'alternativa più robusta e più facile da usare al cut
e awk
comandi.
Grazie a questo comando potremo selezionare parole o intervalli di parole da una stringa o da un intero file. Questo lo rende ideale per script e soprattutto programmi di terze parti che richiedono il lavoro con stringhe di caratteri.
Poiché è stato creato con Rust, possiamo installarlo senza problemi in Linux. In aggiunta a questo, è uno strumento leggero e la sua installazione è semplice da eseguire.
Alcune caratteristiche del comando select sono:
- Sintassi di selezione dei campi concisa simile alle sezioni dell'elenco di Python
- Indicizzazione negativa da fine riga
- Indice di inizio/fine opzionale
- Zero-indicizzato
Quindi proviamoci.
Installa il comando Scegli
Essendo uno strumento creato con Rust, potremo installare utilizzando cargo
. Se hai già installato Rust sul sistema, allora hai già cargo
anche.
Altrimenti, puoi installarlo come pacchetto separato da Rust. A proposito di Debian e Ubuntu, puoi aprire un terminale e prima di installarlo, aggiornare il sistema.
sudo apt update
sudo apt upgrade
Ora puoi installare cargo
eseguendo
sudo apt install cargo
Con cargo
installato, possiamo installare scegliere. Per farlo, esegui semplicemente
cargo install choose
Al termine dell'installazione, ti verrà chiesto di aggiungere il percorso di installazione al PERCORSO in modo da poterlo utilizzare nel terminale.
Nel mio caso, ho eseguito questo comando
export PATH=$PATH:/home/angelo/.cargo/bin
Modificalo con il tuo e ora controlla la versione di Scegli.
choose --version
Uscita:
choose 1.3.3
In questo modo potremo usarlo senza problemi.
Utilizzando il comando scegli
Il comando scegli ci permette di selezionare una o più parole da una stringa di testo o da un file in base alla loro posizione. Oltre a questo, funziona anche con gli intervalli.
Per spiegarlo meglio, considera questo testo.
Hi, welcome to unixcop. Nice to meet you. So, have a nice day
Se in questo testo vogliamo mostrare la prima parola e la sesta parola.
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 0 5
Uscita:
Hi, to
Ricorda che la scelta inizia il conteggio da 0. Cioè, 0
è la prima parola nella stringa.
Per ottenere un intervallo, usa :
. Ad esempio,
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 1:6
Uscita:
welcome to unixcop. Nice to meet
In questo caso ho stampato dalla seconda parola alla settima.
Simile a Python, Choose fa parte della sua sintassi per definire le ultime parole della stringa. Quindi -1
si riferisce all'ultima parola, -2
alla penultima parola e così via.
Ad esempio:
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 2:-1
In questo caso, stiamo visualizzando dalla terza parola alla fine. Il risultato è:
to unixcop. Nice to meet you. So, have a nice day
Puoi anche selezionare parole e intervalli diversi
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 0 10 4:-3 -1
Così ho scelto, la prima parola, l'undicesima, la quinta alla penultima ante e l'ultima parola. Il risultato è:
Hi, a Nice to meet you. So, have a day
Il comando select è utile anche per gestire .csv
file. In questo caso, l'utilizzo è lo stesso ma se è delimitato da ,
devi aggiungere il -f
opzione. Ad esempio,
cat [csv_file] | choose -f ',' 0:2
In questo modo, puoi scegliere che il delimitatore sia ,
.
Se vuoi che l'output dello schermo sia più leggibile, puoi usare il -o
opzione con il tasto Tab.
cat [csv_file] | choose -f ',' -o '0 3
È così semplice.
Conclusione
In questo post, ti abbiamo presentato uno strumento importante come scegliere. Vuole essere una valida alternativa a awk
e cut
comandi ma semplificando tutto.