Sed

De whats Wiki

Dreceres ràpides: navegació, cerca

Contingut

Greedy - Non Greedy

Per tal d'aconseguir aquest efecte, es pot fer de la següent manera:

/* hola */ i=3; /* adeu */
s/\/\*[^*]*\*\///g

Cal posar entre els dos caracters a fer-li el greedy:

[^caracter]*

Per tal de inidicar tots els caracters menys el què es vol tractar

Altres

Posar doble espais a un arxiu

sed G arxiu

Per a que nomes mostri la línia que coincideix amb el mach

sed -n '/hola/p'

Posar triple espais a un arxiu

sed 'G;G' arxiu

Afegeix una linia en blanc després de expresio

sed /expresio/G arxiu

eliminar una linia q contingui expresio

sed /expresio/d arxiu

eliminar les linies q comencen per # i les linies buides

sed '/^#/d;/^$/d;' arxiu

Substitueix foo per bar a les linies que hi hagi baz

sed '/baz/s/foo/bar/g' file

insertar una linia en blanc dabant i darrere de cada linia expresio

sed '/expresio/{x;p;x;G;}'

printar el numero de linia d'un arxiu

sed = arxiu

reemplaçar tots els caracters \n per \t

sed 'N;s/\n/\t/' arxiu

si la linia conte , la numera

sed '/,/=' passwd

contar les linies

sed -n '$=' arxiu

en cas de haber-hi tabs i/o espais el principi de la linia els treiem

sed 's/^[\ \t]*//'  passwd

el mateix pero al final de linia

sed 's/[ \t]*$//'  passwd

posar 5 espais al pricipi de linia

sed 's/^/     /'

sed 's/foo/bar/'             # replaces only 1st instance in a line
sed 's/foo/bar/4'            # replaces only 4th instance in a line
sed 's/foo/bar/g'            # replaces ALL instances in a line

substituir foo per bar a les linies q continguin baz

sed '/baz/s/foo/bar/g' passwd

substituir foo per bar a les linies q no continguin baz

sed '/baz/!s/foo/bar/g' passwd

per printar d'una linia q concordi amb exp1 fins a una q concordi per exp2

sed -n '/exp1/,/exp2/p' arxiu

Per classificar les expresions en grups, es poden separar per parentesis i accedir-hi via \1 \2 \3 etc... Per modificar el contingut d'una línia

sed 's/(^patern)uuc="0667"(.*)/\1uuc="777"\ kernel\ \2'

Per fer els modificacions efectives a un fitxer

sed -i 's/root/superwhats/g' /etc/passwd

I per fer-ne alhora un backup

sed -i.bak 's/root/superwhats/g' /etc/passwd

ENLLAÇOS

trukis de sed

http://setuplinux.com/?q=node/14
http://www.ce.berkeley.edu/~kayyum/unix_tips/sedtips.html 

NOTES

per separar diferents coses a fer amb el sed a una mateixa linia

;

per poder remenar els \t \n , etc

N;

tot el q es posi despres de sed, millor posar-ho entre cometes

'

Text en cursiva