Cos’è SED in Linux e come lo usi?

Ce este SED în Linux și cum îl utilizați?
⏱️ 4 min read

sed sta per Stream editor ed è un comando comunemente usato in Linux / Unix. Il nome deriva da una combinazione di queste due parole. Non è un editor di testo, sebbene modifichi il testo. Invece, sed riceve l’input di testo come “flusso” e modifica il flusso in base alle tue istruzioni.

In generale, le persone usano sed come versione da riga di comando di trova e sostituisci. Il comando principale nel programma viene utilizzato per sostituire una stringa di caratteri con un’altra. Ciò lo rende utile per eseguire funzioni di ricerca e sostituzione su un batch di file, ma non è così facile da usare come qualcosa da Blocco note o Word. Scoprirai che la sintassi richiede un po ‘di tempo per abituarsi, ma una volta che l’hai abbassata, vedrai quanto può essere incredibilmente potente questo editor compatto.

Utilizzo di sed per la sostituzione

Per usare sed, dovrai aprire una finestra di Terminale. Il comando viene richiamato con sed, ma digitarlo da solo non farà nulla. È necessario fornire uno dei comandi e alcuni parametri.

Il parametro più comune è sostituto, o s. Un semplice sed il comando di sostituzione ha un aspetto simile al seguente:

Quel comando ordinerà a sed di scansionare il testo in arrivo e di sostituire ogni istanza della stringa “gatto” con “cane”. Per dimostrare, useremo il echo comando per dare a sed qualcosa con cui lavorare.

Ci sono tre parti principali del comando sed. Primo, c’è sed che avvia il programma. Poi c’è il file s che avvia il comando di sostituzione. Il taglio in avanti / è un separatore. La stringa successiva sarà la stringa che sed cerca. La stringa dopo la seconda barra saranno i caratteri sostitutivi che sed scrive nel flusso. La barra finale chiude il comando. Tutti insieme, è 's/text-to-find/text-to-replace/'.

Nota le virgolette singole in quell’esempio. Le virgolette singole ti consentono di utilizzare meta caratteri nel tuo comando. Sebbene le virgolette non siano essenziali per la maggior parte dei nostri esempi, dovresti sviluppare l’abitudine di utilizzare le virgolette per tutti i comandi.

E le stringhe parziali? Il comando precedente funzionerà su qualsiasi aspetto della stringa “gatto”, anche se fa parte di un’altra parola. Ad esempio, “catapulta” diventerà “dogapulta” mentre “catamarano” diventerà “dogamarano”.

what-is-sed-guide-2

Sostituzione globale

Nel nostro primo esempio potresti aver notato che è stata sostituita solo la prima istanza della stringa corrispondente. Come molte utilità GNU, sed è basato sulla riga. Di conseguenza, funziona solo sulla prima corrispondenza all’interno di una riga. Se nella riga sono presenti più corrispondenze per la stringa candidata, verrà modificata solo la prima. Per far funzionare sed su ogni occorrenza della stringa di destinazione, utilizzare il g flag alla fine del comando:

Questo funzionerebbe come il seguente esempio:

what-is-sed-guide-3

Senza il flag globale, verrebbe sostituita solo la prima istanza di “cat” in ogni riga.

Impostazione dei file di input e output

Per impostazione predefinita, sed opererà sullo standard input. Tuttavia, non è molto utile. Per eseguire sed su un file, specifica il nome del file alla fine del comando, in questo modo:

what-is-sed-guide-4

Questo eseguirà sed su “oldfile.txt” e salverà l’output del comando in “newfile.txt”. Se “newfile.txt” non esiste, verrà creato dal comando. Se non specifichi un file di output, sed eseguirà l’eco del nuovo testo del file nell’input standard.

Se vuoi sovrascrivere il contenuto di un file, dovrai usare l’estensione -i bandiera. Questo flag rende le modifiche “in atto”.

Questo comando sovrascrive immediatamente il contenuto del file di destinazione, il che è leggermente pericoloso. Per stare al sicuro, puoi creare un backup in loco.

Per creare un backup del file, inserisci un’estensione dopo il -i. Non è necessario che sia un’estensione funzionale: “.bu” o “.bak” funzionano bene. Questo creerà un file di backup con un’estensione.

Viene creato “oldfile.txt.bak”, che contiene i dati di testo non modificati dalla versione originale di “oldfile.txt”.

Corrispondenza di espressioni regolari

Il vero potere di sed proviene dalla corrispondenza di espressioni regolari. Ciò consente di impostare modelli per la corrispondenza, anziché stringhe letterali. Ad esempio, potremmo usare qualcosa come la stringa di seguito per ripetere qualsiasi insieme di uno o più numeri:

what-is-sed-guide-5

Apprendimento ulteriore

sed è un’utilità estremamente potente con una profondità di potenza simile a un linguaggio di scripting. Per saperne di più sulle funzionalità complete di sed, dai un’occhiata La guida completa di Bruce Barnett a sed.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar di Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Potrebbero interessarti anche...

Subscribe
Notificami
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x