Introducció a sed
sed
(Stream Editor) és una eina potent per a la manipulació de text en Bash. Permet realitzar operacions com la substitució, inserció, supressió i transformació de text en fitxers o fluxos de dades. És especialment útil per a l'edició de fitxers de text de manera no interactiva.
Conceptes Clau
- Patró de Cerca i Substitució:
sed
permet buscar patrons de text i substituir-los per altres. - Edició en Lloc:
sed
pot modificar fitxers directament. - Comandes de sed: Les comandes més comunes inclouen
s
(substituir),d
(esborrar),i
(inserir) ia
(afegir).
Sintaxi Bàsica
La sintaxi bàsica de sed
és:
Per exemple, per substituir totes les ocurrències de "foo" per "bar" en un fitxer:
Exemples Pràctics
Substitució de Text
Substituir totes les ocurrències de "hello" per "world" en un fitxer:
Explicació:
s
: Indica una substitució.hello
: El text a buscar.world
: El text de substitució.g
: Indica que la substitució és global (totes les ocurrències en cada línia).
Edició en Lloc
Modificar un fitxer directament sense crear un fitxer temporal:
Explicació:
-i
: Edita el fitxer en lloc.
Esborrar Línies
Esborrar totes les línies que contenen "delete":
Explicació:
/delete/
: El patró a buscar.d
: Esborrar les línies que coincideixen amb el patró.
Inserir i Afegir Línies
Inserir una línia abans d'una línia que conté "pattern":
Afegir una línia després d'una línia que conté "pattern":
Explicació:
i\
: Inserir abans.a\
: Afegir després.
Exercicis Pràctics
Exercici 1: Substitució Simple
Substitueix totes les ocurrències de "cat" per "dog" en el fitxer animals.txt
.
Exercici 2: Esborrar Línies
Esborra totes les línies que contenen la paraula "error" en el fitxer log.txt
.
Exercici 3: Inserir Text
Inserir la línia "Inici del fitxer" abans de la primera línia del fitxer data.txt
.
Exercici 4: Afegir Text
Afegir la línia "Final del fitxer" després de l'última línia del fitxer data.txt
.
Solucions als Exercicis
Solució 1
Solució 2
Solució 3
Solució 4
Errors Comuns i Consells
- Oblidar el modificador
g
: Sense el modificadorg
, només es substituirà la primera ocurrència en cada línia. - No utilitzar cometes simples: És recomanable utilitzar cometes simples per evitar que el shell interpreti caràcters especials.
- Edició en lloc sense còpia de seguretat: Quan utilitzis
-i
, considera fer una còpia de seguretat del fitxer original.
Conclusió
sed
és una eina essencial per a qualsevol programador que treballi amb Bash. La seva capacitat per manipular text de manera eficient i no interactiva la fa indispensable per a tasques d'automatització i processament de dades. Amb la pràctica, podràs utilitzar sed
per resoldre una àmplia varietat de problemes de text de manera ràpida i eficient.
Curs de Programació en Bash
Mòdul 1: Introducció a Bash
- Què és Bash?
- Configuració del teu Entorn
- Navegació Bàsica per la Línia de Comandes
- Entenent la Shell
Mòdul 2: Comandes Bàsiques de Bash
- Operacions amb Fitxers i Directoris
- Comandes de Processament de Text
- Permisos i Propietat de Fitxers
- Redirecció i Piping
Mòdul 3: Conceptes Bàsics de Scripting
Mòdul 4: Scripting Intermedi
Mòdul 5: Tècniques Avançades de Scripting
- Operacions Avançades amb Fitxers
- Gestió de Processos
- Gestió d'Errors i Depuració
- Expressions Regulars
Mòdul 6: Treballant amb Eines Externes
Mòdul 7: Automatització i Programació
- Treballs Cron
- Automatització de Tasques
- Scripts de Còpia de Seguretat i Restauració
- Monitorització i Registre
Mòdul 8: Millors Pràctiques i Optimització
- Escriure Codi Llegible
- Optimització de Scripts en Bash
- Consideracions de Seguretat
- Control de Versions amb Git