"Il termine sed è un'abbreviazione di Editor di streaming. In unix/linux, il sed Comando analizza e trasforma i flussi (testi, nella maggior parte dei casi). È uno strumento di riga di comando che viene preinstallato in ogni sistema UNIX/Linux."
In questa guida, esploreremo il G opzione in sed.
Uso di base di SED
L'uso più comune del comando SED è trovare e sostituire i contenuti in un determinato flusso. La struttura di comando è la seguente:
$ sed 's ///'
Dai un'occhiata al seguente esempio:
$ echo "The Quick Brown Fox" | sed 's/the/the/'
Qui,
Se stai cercando di modificare un file di testo, SED non modificherà il contenuto del file per impostazione predefinita. Questo per evitare perdita di dati accidentali. Per modificare direttamente il contenuto di un file, è necessario eseguire SED con l'editing sul posto.
L'opzione G in sed
Quando si trova e si sostituisce, il comportamento predefinito di sed è interrompere le sue azioni dopo aver trovato la prima istanza. Il seguente esempio dimostra perfettamente questo comportamento:
$ echo "The the" | sed 's/the/the/'
Qui,
Per istruire SED di trasformare tutte le istanze di corrispondenza del modello dato, dobbiamo aggiungere l'opzione G. Aggiorna il comando come segue:
$ echo "The the" | sed 's/the/the/g'
Ora, tutti i casi di "The" sono cambiati in "il" correttamente.
L'opzione G in sed
Finalmente arriviamo al punto di messa a fuoco di questa guida. Mentre il G L'opzione è applicabile per la sostituzione del testo, il G l'opzione viene utilizzata per uno scopo completamente diverso.
Usando il G Opzione, possiamo aggiungere spazio allo spazio dei pattern. In termini semplici, possiamo aggiungere nuove righe prima/dopo il modello di abbinamento.
Per dimostrazione, ho creato un file di testo di esempio test.TXT:
gatto << EOF > test.TXT
IL
presto
marrone
IL
Volpe
Eof
Spaziatura aggiuntiva
Ora possiamo eseguire varie operazioni sulla spaziatura del file. Ad esempio, per raddoppiare il file, utilizzare il comando seguente:
$ sed g test.TXT
Allo stesso modo, possiamo triplicare spazio nel file:
test $ sed 'g; g'.TXT
Qui,
Rimozione della spaziatura aggiuntiva
Possiamo anche usare il G Opzione per eliminare tutte le righe vuote e il doppio spazio:
test $ sed 'g; g'.txt | sed '/^$/d; g'
Inserimento di righe vuote prima/dopo le partite
Possiamo specificare uno schema usando l'espressione regolare e dire a SED di aggiungere una riga vuota prima/dopo essa.
Il primo esempio sarà l'aggiunta di una riga vuota sotto il modello di corrispondenza:
Test $ sed '/the/g'.TXT
Il prossimo esempio sarà l'aggiunta di una riga vuota sopra il modello di corrispondenza:
$ sed '/the/x; p; x;' test.TXT
Infine, possiamo combinarli entrambi per inserire linee vuote attorno al modello di abbinamento:
$ sed '/the/x; p; x; g;' Test.TXT
Pensieri finali
In questa guida, abbiamo dimostrato con successo vari modi per utilizzare il G opzione con sed Per aggiungere spazi nel testo. Questa tecnica può essere utile in varie situazioni, ad esempio, individuando linee specifiche in un registro di debug.
Un enorme vantaggio di SED è il suo supporto per espressione regolare. Ulteriori informazioni su SED con Regex. Il comando SED può anche essere facilmente integrato nello script di shell.
Felice calcolo!