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.txtEste 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.txtque 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.txtque 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