Full de trucs 'sed' d'ús habitual:
Els caràcters més utilitzats que s’utilitzen a l’ordre `sed` s’expliquen a la taula següent.
Personatge | Propòsit |
a | S'utilitza per afegir contingut. |
b | S'utilitza per ramificar contingut. |
c | S'utilitza per canviar contingut. |
d | S'utilitza per eliminar una línia d'un fitxer. |
D | S'utilitza per eliminar la primera línia d'un fitxer. |
g | Solia copiar del text de la retenció. |
G | S'utilitza per afegir des del text de la retenció. |
h | S'utilitza per copiar al text de la retenció. |
H | S'utilitza per afegir al text de la retenció. |
jo | S'utilitza per a la inserció. |
Jo | S'utilitza per imprimir la línia substitutiva. |
n | S'utilitza per anar a la següent línia. |
N | S'utilitza per afegir la següent línia d'entrada. |
pàg | S’utilitza per imprimir. |
Pàg | S'utilitza per imprimir la primera línia. |
q | S'utilitza per deixar de fumar. |
Q | S'utilitza per deixar immediatament. |
r | S'utilitza per llegir el fitxer. |
R | S'utilitza per llegir la línia del fitxer. |
s | S'utilitza per substituir. |
t | S'utilitza per provar la substitució. |
T | S'utilitza per provar cap substitució. |
dins | S'utilitza per escriure al fitxer. |
IN | S'utilitza per escriure una línia al fitxer. |
x | S’utilitza per canviar patrons i mantenir premuts. |
i | S'utilitza per traduir. |
Amb | S'utilitza per esborrar la línia. |
'=' | S'utilitza per imprimir el número de línia. |
Substitueix diverses línies mitjançant l'ordre `sed` del terminal:
En aquesta part d’aquest tutorial es mostra com es pot utilitzar l’ordre `sed` per substituir les línies múltiples d’un fitxer del terminal. Creeu un fitxer anomenat sed.txt amb el contingut següent, proveu les ordres d'aquesta part.
sed.txt
La forma completa de sed és editor de flux.
És una utilitat Unix que s’utilitza per llegir i convertir el text en un format diferent.
Va ser desenvolupat per Lee E. McMahon.
S'utilitza per al processament de text.
Admet expressions regulars.
Exemple-1: substituïu dues línies consecutives
La següent ordre `sed` substituirà dues línies consecutives per una altra línia. Aquí, l'opció -z s'utilitza per substituir les línies consecutives per dades nul·les abans d'afegir el text de reemplaçament. Segons l'ordre, el 3rdi 4thles línies del fitxer se substituiran pel text, 'És una eina molt útil' .
$gatsed.txt$sed -Amb 's / Va ser desenvolupat per Lee E. McMahon. nS'utilitza per al text
processament. / És una eina molt útil.sed.txt
La sortida següent apareixerà després d'executar les ordres.
Exemple-2: substituïu diverses línies segons la coincidència i el senyal global
L'ordre següent 'sed' substituirà totes les línies que comencin per la paraula, 'És' amb la paraula ' Aquesta línia es substitueix '.
$gatsed.txt$sed 's / ^ It. * / Aquesta línia es substitueix / g'sed.txt
La sortida següent apareixerà després d'executar les ordres. Tres línies contenen la paraula ' Això ‘A l’expedient. Per tant, aquestes línies s’han substituït pel text de reemplaçament.
Exemple-3: substituïu diverses línies en funció de l'ordre de coincidència i de la següent línia
L'ordre següent 'sed' substituirà la paraula ' és 'Per la paraula,' era 'Amb l'ordre de línia següent,' n '.
$gatsed.txt$sed '{n; / is / {s / is / was /}}'sed.txt
La sortida següent apareixerà després d'executar les ordres. Aquí, 'és' existeix a la 2ndi 4thlínies del fitxer, i aquestes línies són modificades per la paraula 'Era' .
Substituïu diverses línies creant el fitxer d'escriptura `sed`:
En els exemples anteriors, les ordres `sed` s’han executat des del terminal. Però és un llenguatge de seqüència d’ordres i, si l’escriptura conté múltiples sentències, és millor crear un fitxer sed amb l’escriptura. Creeu un fitxer de text anomenat alumnes.txt amb el contingut següent en què s'aplicarà l'script `sed`.
alumnes.txt
ID: 111045Nom: Robert
Departament: CSE
Lot: 35
ID: 111876
Nom: Josep
Departament: BBA
Lot: 27
ID: 111346
Nom: William
Departament: CSE
Lot: 45
ID: 111654
Nom: Charles
Departament: EEE
Lot: 41
ID: 111346
Nom: Joan
Departament: CSE
Lot: 25
ID: 111746
Nom: Thomas
Departament: CSE
Lot: 15
Exemple-4: substituïu diverses línies d'un fitxer mitjançant el fitxer d'escriptura `sed`
Creeu un fitxer sed anomenat a substituir.sed amb el contingut següent per substituir les diverses línies basades en el patró de cerca. Aquí, la paraula ' CSE ‘Es buscarà al fitxer de text i, si existeix la coincidència, tornarà a buscar els números 35 i 15. Si la segona coincidència existeix al fitxer, se substituirà pel número 45.
substituir.sed
/CSE/ {p; n;
/35/ {
s/35/45/;
p; d;
}
/15/ {
s/15/55/;
p; d;
}
}
p;
Executeu l'ordre següent per comprovar el contingut existent del fitxer. 'CSE' va aparèixer quatre vegades al fitxer de text. 35 i 15 existeixen en dos llocs.
$gatalumnes.txt
L'ordre següent substituirà el contingut de les diverses línies basades en l'script sed.
$sed -n -freplace.sed students.txtLa següent sortida apareixerà després d'executar l'ordre.
Conclusió
En aquest tutorial s'han mostrat diferents maneres de substituir diverses línies o el contingut de diverses línies mitjançant l'ordre `sed`. En aquest tutorial també es mostra com es pot executar l’escriptura `sed` des d’un fitxer sed. Espero que aquest tutorial ajudi el lector a substituir diverses línies de qualsevol fitxer mitjançant l'ordre `sed`.