Sed esempi di gruppi di cattura

Sed esempi di gruppi di cattura
Le operazioni di gestione dei file di testo svolgono un ruolo vitale nella vita quotidiana di un utente di computer in modo da gestire il testo è comune tra gli utenti di tutte le professioni. Linux e i suoi distro forniscono una varietà di strumenti e utility di comando per accedere e gestire i file di testo come l'editor predefinito, VIM, Nano. Questi strumenti aiutano a modificare, eliminare, sostituire, il testo all'interno dei file di testo; Tuttavia, gli utenti devono aprire il file utilizzando uno di questi redattori ed eseguire manualmente le modifiche che devono essere apportate.

C'è un altro noto editore noto come "Stream Editor (SED)"; L'utilità della riga di comando SED di Ubuntu fornisce un ampio supporto per gestire i file di testo; Questo strumento è classificato nei principali editor a causa delle funzionalità avanzate che offre mentre si tratta di file di testo. Il motivo alla base della sua popolarità è l'operazione di comando di una riga: il che significa che può gestire i file di testo utilizzando il terminale e gli utenti non devono aprire e modificare manualmente alcun file di testo. La cattura del gruppo si riferisce a un'altra caratteristica avanzata di questo strumento; Il gruppo di acquisizione della funzionalità di SED consente all'utente di ottenere la parte specifica di un file di testo o una riga. In questa guida dettagliata, abbiamo brevemente descritto il concetto di raggruppamento di cattura, il suo lavoro e l'uso con SED.

In primo luogo, avremo una visione approfondita dei gruppi di cattura e poi procederemo al suo utilizzo con SED:

Quindi, iniziamo la guida di oggi:

Come funzionano i gruppi di acquisizione

Come discusso in precedenza, i gruppi di acquisizione sono la parte specifica di qualsiasi riga o file di testo. Potrebbe esserci uno dei seguenti scopi dietro i gruppi di cattura:

  • Per catturare le informazioni
  • Manipolare il testo per una corrispondenza specifica

Può essere utilizzato per ottenere le informazioni individuali cercando la parte specifica all'interno di un file di testo e le operazioni di manipolazione possono anche essere eseguite su quella corrispondenza specifica.

Come realizzare gruppi di acquisizione usando il comando sed in ubuntu

I gruppi di acquisizione in SED sono formati applicando parentesi alle espressioni regolari o all'operazione che l'utente desidera eseguire. Ad esempio, per realizzare gruppi di acquisizione devi mettere parentesi come "\ (" all'inizio e "\)" alla fine di una specifica espressione regolare:

In breve, il gruppo di acquisizione viene utilizzato per prendere la parte specifica della riga, del file di testo e quindi eseguire un'operazione su quel gruppo:

I prossimi esempi dimostrano l'uso di gruppi di acquisizione usando il comando SED; Gli esempi variano dal livello di base a quello avanzato.

Catturare un singolo gruppo usando il comando sed

Il comando scritto di seguito catturerà la parola "Ciao"E quindi sostituire la parola che si verifica dopo ("sed!") con "Linuxhint": Potresti aver notato che il gruppo di acquisizione è racchiuso nell'espressione della parentesi" \(" E "\)".

$ echo ciao sed! | sed 's/\ (ciao \) sed!/\ 1 Linuxhint/'

Cattura più gruppi usando il comando sed

Il comando SED consente di acquisire più gruppi e quindi eseguire l'operazione su quel gruppo. Ad esempio, il comando menzionato di seguito acquisirà e stamperà solo gruppi selezionati. Si osserva che i gruppi di acquisizione possono essere chiamati assegnando loro un nome dell'ordine:

Nella parte di eco di questo comando tre distribuzioni e un genitore Linux viene posizionato, i.e., Totale quattro voci: tuttavia, nel comando SED abbiamo chiamato solo 1,2 e 3 gruppi in ordine inverso. L'output mostra che solo tre gruppi sono stampati in ordine inverso mentre "Fedora"Mantiene la sua posizione originale:

$ Echo Ubuntu Debian Linux Fedora | sed 's/\ (ubuntu \) \ (debian \) \ (linux \)/\ 3 \ 2 \ 1/'

Catturare gruppi di espressioni complesse

Diciamo che abbiamo un'espressione che contiene parole chiave alfanumeriche; Dobbiamo creare gruppi e quindi stamparli in qualsiasi ordine (inverso/normale). Il comando indicato di seguito mostra che l'espressione contiene parole chiave alfanumeriche; Abbiamo realizzato gruppi di tutte e tre le parole alfanumeriche e quindi abbiamo mostrato quelle parole in un ordine inverso:

Nota: Lo stesso comando può essere usato sostituendo “\w\w*" con "[[: Alnum:] _] \ 1, \":

$ Echo Linuxhint 123 Capture_Groups | sed 's/\ (\ w \ w*\) \ (\ w \ w*\) \ (\ w \ w*\)/\ 3 \ 2 \ 1/'

Il comando sopra contiene gruppi di acquisizione "\ (\ w \ w*\)"; Questi funzionano per le parole chiave alfanumeriche. È possibile eseguire il comando sopra utilizzando la classe di caratteri alfanumerici come gruppo di acquisizione. Ad esempio, il comando menzionato di seguito fornirà lo stesso output quando la classe di caratteri alfanumerici viene utilizzata come gruppo di acquisizione:

$ Echo Linuxhint 123 Capture_Groups | sed 's/\ ([[: alnum:] _] \ 1, \ \) \ ([[: alnum:] _] \ 1, \ \) \ ([[: alnum:] _] \ 1, \ \)/\ 3 \ 2 \ 1/'

Conclusione

L'utilità della riga di comando SED fornisce una guida dettagliata per gestire i file di testo utilizzando il terminale della riga di comando; Questo editore potrebbe essere difficile da operare, ma mentre scavi nei dettagli, troverai facile da capire e applicare. Inoltre, le sue funzionalità avanzate facilitano il processo di manipolazione e gestione dei file di testo; come espressioni regolari e cattura di gruppi. In questo articolo, abbiamo bloccato il concetto di gruppi di cattura in SED; e ha fornito l'uso approfondito facendo riferimento ad alcuni esempi. I gruppi di acquisizione sono abbastanza utili soprattutto quando si dispone di file di testo molto grandi e si desidera identificare contenuti specifici da tali file.