Gli sviluppatori Linux seguono la filosofia di creare piccoli programmi che svolgono un compito e lo fanno bene. Prendi come esempio gli strumenti di elaborazione del testo di Linux, sono leggeri e hanno funzionalità modulari. Anche se questi strumenti di manipolazione del testo differiscono per complessità e funzionalità, risultano utili in un ambiente in cui l'interfaccia utente grafica non è disponibile.

L'articolo copre i migliori strumenti Linux per leggere i file e utilizzare le espressioni regolari per eseguire operazioni sul testo selezionato. Copre anche le loro funzionalità di base ed esempi per una migliore comprensione.

1. grep

grep è un'utilità di manipolazione del testo Linux che cerca una stringa di caratteri o modelli noti come espressioni regolari in un file o testo. Lo strumento grep appartiene alla famiglia di utilità che include egrep, fgrep e grep, tra cui fgrep è il più veloce di tutti, mentre grep è il più semplice.

La sintassi generale per l'utilizzo di grep è la seguente:

instagram viewer
grep -options stringa nomefile

Ad esempio, per cercare la parola "radice" in il file /etc/passwd:

grep root /etc/passwd

Alcuni esempi di riga di comando standard per iniziare sono:

Opzioni Esempio Descrizione
-C grep -c ./bashrc Conta il numero di righe in cui esiste la stringa
-io grep -i ./bashrc Eseguire una ricerca senza distinzione tra maiuscole e minuscole per la stringa specificata
-o grep -o file Stampa solo la stringa corrispondente
-l grep -l "passwd" Stampa i nomi dei file nella directory corrente che corrispondono al modello
-n grep -n file Stampa il numero di riga lungo la riga contenente la stringa specificata
stringa1|stringa2 grep file "stringa1|stringa2". Trova e stampa più stringhe da un file

Allo stesso modo, puoi usare il ^ metacharacter con il comando grep per visualizzare tutte le stringhe corrispondenti che iniziano con determinati caratteri.

Ad esempio, il comando seguente invia l'output del comando env come input a grep e visualizza le variabili che iniziano con "HO":

env | grep ^HO

Imparentato: Esempi pratici dei comandi Grep di Linux

2. awk

awk è un potente linguaggio di scripting e uno strumento di manipolazione del testo da riga di comando in grado di eseguire scansioni riga per riga e confrontare le righe con i modelli. La sintassi di base del comando awk è un'azione definita tra virgolette singole e parentesi graffe seguite dal nome del file.

awk '{azione}' nomefile
awk '{modello; azione}' nomefile

L'utilità ricerca il file utilizzando espressioni regolari ed esegue la funzione definita nel parametro action. awk esegue lo script su ogni riga se non si imposta uno schema, come mostrato di seguito:

awk '{stampa $1}' awk_examples.txt

...dove $1 visualizza il primo campo di awk_examples.txt file.

Il comando seguente esegue la funzione di stampa sul pattern dato sostituendo il secondo campo "Mondo" con "Alice," e visualizza l'intera riga ($0):

eco "Ciao mondo" | awk '{$2="Alice"; stampa $0}'

Produzione:

Ciao Alice

Allo stesso modo, puoi usare la funzione stampa $ 0 dal comando sopra per emulare il grep funzionalità.

awk '/john/{print $0}' /etc/passwd
giovanni: x: 1001:1001::/home/giovanni:/bin/sh

3. ordinare

sort è un'altra utilità della riga di comando di Linux che consente di visualizzare il contenuto del file di testo specificato in un formato ordinato. Ad esempio, puoi reindirizzare l'output del comando awk come input all'utilità di ordinamento come segue:

awk '{stampa $1}' awk_examples.txt | ordina > ordina_testo.txt
gatto sort_text.txt

Produzione:

Imparentato: Come ordinare i file di testo in Linux usando l'ordinamento

4. sed

sed o stream editor accetta l'input come flusso di caratteri ed esegue filtri e trasformazioni del testo (elimina, sostituisci e sostituisci) sul testo specificato.

Puoi usarlo in uno script e modificare i file in modo non interattivo. Quindi, lo scopo più basilare dell'utilità è la sostituzione di stringhe/caratteri. La sintassi generale è:

sed file 's/string/substitution/option'

Crea un file usando frasi casuali per esercitarti e comprendere il funzionamento di questa utility.

Sostituiamo l'occorrenza della parola "Due" su ogni riga del file con "2" usando il -G flag per la sostituzione globale, come segue:

sed 's/due/2/g' sed_examples.txt > sed_examples2.txt

Allo stesso modo, usa il -D flag per eliminare una riga specifica dal file:

sed '2d' sed_examples.txt

Puoi anche sostituire la stringa specificando un numero di riga (4 s/due/2/pag) e stampando solo la riga sostituita come segue:

sed -n '4 s/due/2/p' sed_examples2.txt

Il -n flag nel comando sopra disabilita la stampa automatica del flusso di input sull'output. Puoi usare questa opzione a tuo favore per sostituire la funzionalità dell'utilità grep con sed.

Ad esempio, puoi modificare il comando sopra includendo solo un pattern regex /two/p tale che il -P flag stamperà solo le righe nel flusso di output standard.

sed -n '/due/p' sed_examples2.txt

Imparentato: Questi 10 esempi di sed ti renderanno un utente esperto di Linux

5. taglio

Il taglio è un'altra utilità della riga di comando che taglia/estrae parti di testo da una riga o da un file. Taglia il testo in base a un campo, carattere o posizione di byte specificati e reindirizza il risultato allo standard output.

L'utilità accetta la seguente sintassi:

taglio  file

Utilizzare il -B opzione per tagliare una sezione o un contenuto utilizzando un byte specificato o un intervallo di byte:

cut -b 1 cut_examples.txt

Utilizzare il -C flag per estrarre il testo specificando le posizioni dei caratteri:

taglia -c 1,3,5 cut_examples.txt

Infine, puoi anche estrarre il testo specificando i campi con il -F opzione e -D per spazio o delimitatore di campo:

cut -d " " -f 1 cut_examples.txt

Ecco l'elenco degli intervalli con esempi e descrizioni che puoi utilizzare con il personaggio -C e byte -B opzioni:

Gamma Esempio Descrizione
n- taglia -c 7- nomefile Estrai il carattere dall'ennesimo numero intero fino alla fine della riga
n-m taglia -b 7-15 nome file Estrae dall'intero n-m di ogni riga dal file di input
-m taglia -c -7 nomefile Estrae le righe a partire da m fino alla fine della riga

Si noti che non è possibile definire gli intervalli per l'estrazione del testo utilizzando il campo -F opzione.

Manipolazione del testo con i comandi di Linux

Linux offre molti programmi e strumenti per la gestione e l'elaborazione di file o testo. Impararli tutti potrebbe non essere necessario poiché puoi facilmente riempire il divario con un altro una volta che hai una buona presa su uno, come usare sed come grep o awk come grep, ma questo non può essere vero per tutti gli strumenti.

Inoltre, i comandi Linux hanno una curva di apprendimento ripida, ma una volta sviluppate le abilità, possono rivelarsi molto utili ed efficaci nella vita di qualsiasi utente Linux, in particolare un amministratore di sistema.

8 migliori app per terminali per una maggiore produttività Linux

Stanco della vecchia e noiosa app terminale che viene preinstallata su Linux? Dai un'occhiata a queste otto app per terminali che miglioreranno il tuo flusso di lavoro.

Leggi Avanti

CondividereTwittaE-mail
Argomenti correlati
  • Linux
  • Comandi Linux
Circa l'autore
Rumaisa Niazi (7 articoli pubblicati)

Rumaisa è una scrittrice freelance al MUO. Ha indossato molti cappelli, da matematica a appassionata di sicurezza informatica, e ora lavora come analista SOC. I suoi interessi includono la lettura e la scrittura di nuove tecnologie, distribuzioni Linux e tutto ciò che riguarda la sicurezza delle informazioni.

Altro da Rumaisa Niazi

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti