Unha guía rápida para usar os comando Sed en Linux

Unha introdución ao comando Linux sed

O sistema operativo Linux usa comandos de terminal para traballar co sistema de ficheiros dunha computadora. O uso primario do comando Linux sed , que é curto para o editor de transmisións, é modificar cada liña dun ficheiro ou transmisión substituíndo partes especificadas da liña. Fai modificacións básicas de texto a un ficheiro ou a entrada dunha canalización. Por exemplo, di que ten un ficheiro chamado "songs.text" que contén estas liñas:

1, Justin Timberlake, Título 545, Prezo $ 6.30 2, Taylor Swift, Título 723, Prezo $ 7.90 3, Mick Jagger, Título 610, Prezo $ 7.90 4, Lady Gaga, Título 118, Prezo $ 6.30 5, Johnny Cash, Título 482, Prezo $ 6.50 6, Elvis Presley, Título 335, Prezo 6,30 dólares 7, John Lennon, Título 271, Prezo 7,90 dólares.

Facer substitucións de texto con Sed

Se queres cambiar todas as ocorrencias de prezos de 6,30 dólares a 7,30 dólares, podes facer os cambios usando o comando sed deste xeito:

Sed 's / 6.30 / 7.30 /' songs.txt> songs2.txt

Este código fai o cambio e escribe o ficheiro modificado en "songs2.txt". O ficheiro de saída contén:

1, Justin Timberlake, Título 545, Prezo $ 7.30 2, Taylor Swift, Título 723, Prezo $ 7.90 3, Mick Jagger, Título 610, Prezo $ 7.90 4, Lady Gaga, Título 118, Prezo $ 7.30 5, Johnny Cash, Título 482, Prezo $ 6.50 6, Elvis Presley, Título 335, Prezo de 7,30 dólares 7, John Lennon, Título 271, Prezo 7,90 dólares.

Se quere substituír todas as ocorrencias de "Caixa" con "Papelera" que usa:

Sed 's / Cash / Trash /' songs.txt> songs2.txt

que crea un ficheiro con contido:

1, Justin Timberlake, Título 545, Prezo $ 7: 30 2, Taylor Swift, Título 723, Prezo $ 7,90 3, Mick Jagger, Título 610, Prezo $ 7,90 4, Lady Gaga, Título 118, Prezo: $ 7: 30 5, Johnny Trash, Título 482, Prezo de 6,50 dólares 6, Elvis Presley, Título 335, Prezo de 7: 30 dólares 7, John Lennon, Título 271, Prezo de US $ 7,90.

Filtrado co comando Sed

Sed tamén é usado frecuentemente para filtrar as liñas nun ficheiro ou fluxo. Por exemplo, se só desexa ver as liñas que conteñen "John", usa:

sed -n '/ John / p' songs.txt> johns.txt

que escribe as seguintes liñas para arquivar johns.txt:

5, Johnny Trash, Título 482, Prezo de US $ 6,50 7, John Lennon, Título 271, Prezo $ 7,90