Editor de fluxos (SED): Fonaments

Editor De Fluxos Sed Fonaments



SED, també conegut com a editor de fluxos, és una eina molt útil. S'utilitza per cercar una paraula o un patró en particular i, posteriorment, fer alguna cosa a la paraula o patró o, en altres paraules, transformar-lo. A Windows, SED també es coneix com les funcions 'trobar' i 'substituir'. SED ve amb Ubuntu, de manera que no cal instal·lar res; només comenceu a utilitzar-lo. En aquest tutorial, us explicarem com utilitzar SED o l'editor de fluxos.

L'ordre 'S'.

La més important de totes les ordres del SED o de l'editor de flux és l'ordre 's'. La 's' significa substitut. La sintaxi és la següent:







‘s / expressió regular / substitució / banderes


Per tant, utilitzem un fitxer anomenat 'file.txt' per als exemples. Aquí teniu el aspecte de 'file.txt' si ho feu:




Utilitzem un exemple per mostrar com funciona l'ordre 's':



però ‘s / primer / lluna / i' fitxer.txt > lluna.txt


Quan es dóna aquesta expressió, vol dir:





    • s – Significa substitut.
    • primer: la paraula que cal cercar al fitxer anomenat 'fitxer.txt'.
    • lluna: la paraula 'primer' es substitueix per la paraula 'lluna'.
    • i – Significa ignorar. Ignorarem aquesta part per primera vegada.
    • file.txt: el fitxer on SED buscarà el patró o la paraula. En aquest cas, la paraula 'primer' serà:
    • cercat a file.txt

    • moon.txt: quan la paraula 'primer' se substitueix per la paraula 'lluna', es desarà a 'moon.txt'.

Aleshores, què està passant aquí? SED substitueix la paraula 'primer' per 'lluna' només en primera instància (això vol dir que si la paraula 'primer' passa diverses vegades, no la substituirà per tot arreu ni la substituirà diverses vegades). El fitxer que cerca s'anomena 'fitxer.txt' i un cop feta la transformació o la substitució, es desarà a 'moon.txt'.



Aquest és el que sembla:


Si us plau, recordeu posar el '/' on ha de ser. Si ometeu un '/', SED no acceptarà l'ordre.

Fins ara, només hem substituït la paraula 'primer' per 'trobat' amb la substitució. Ara, suposem que volem substituir la paraula 'línia' (que passa moltes vegades, quatre vegades per ser específic) a la tercera línia per la paraula 'àngel'.

Com ens adrecem específicament a aquesta tercera línia? Utilitzem la següent comanda:

però '3s / línia / àngel / i' fitxer.txt > àngel.txt


Aleshores, què ha passat aquí? Bé, el '3' especifica el número de línia. Per tant, passa a la tercera línia. A continuació, substituïu la paraula 'línia' per 'àngel' al fitxer anomenat 'fitxer.txt' i deseu el fitxer transformat com a 'àngel.txt'.


Què passa si volem substituir o transformar les línies '3' i '4'?

però 3 ,4s / línia / àngel / i' fitxer.txt > àngel2.txt



Tingueu en compte que a l'exemple anterior hem utilitzat la bandera 'i' per ignorar. Ara, fem servir la bandera 'g' per a global.

Utilitzem un exemple per mostrar com funciona l'ordre 's':

però ‘s / línia / sol / g’ fitxer.txt > sol.txt


Quan es dóna aquesta expressió, vol dir:

La 'g' significa global. Recordeu que en el primer exemple, quan fem servir la bandera 'i', només hi ha una única substitució. Ara que hem afegit una 'g' per a global, significa substituir a tot arreu. Per tant, en lloc de dir primera línia, segona línia, tercera línia i darrera línia, diu primer sol, segon sol, tercer sol i darrer sol. Substitueix la línia de paraules a tot el fitxer (a tot arreu) per la paraula 'sol'.


Ara bé, què passa si volem seleccionar una única línia en funció d'una paraula que conté? Bé, podem veure que l'última línia de 'fitxer.txt' té la paraula 'últim'. Ara, suposem que volem 'Aquesta és l'última línia. Aquesta és l'última frase'. frase per convertir-se en 'Aquest és l'últim fantasma. Aquesta és l'última frase'.

Escrivim el següent:

però / darrer / s / línia / fantasma / ’ fitxer.txt > fantasma.txt


El 'últim' aquí diu a SED que busqui la línia que tingui la paraula 'últim' i que després substitueixi la paraula 'línia' per 'fantasma' dins d'aquesta línia.


Ara, suposem que volem fer el contrari. Suposem que volem que totes les línies sense la paraula 'última' tinguin la paraula 'línia' canviada per 'fantasma'. Escrivim el següent:

però / darrer /! s / línia / fantasma / ’ fitxer.txt > ghost2.txt


Com podeu veure aquí, cada línia excepte l'última (que conté la paraula 'última') té la paraula 'línia' substituïda per la paraula 'fantasma'.


També ho podem fer amb números de línia:

però 3 , 4 ! s / línia / nit / i' fitxer.txt > nit.txt


En aquest cas, s'ometen les línies 3 i 4, però totes les altres línies tenen la paraula 'línia' substituïda per la paraula 'nit'.

Múltiples ordres

Ara, què passa si tinguessis diverses ordres? Preferiries fer-ho d'un en un o tots alhora i estalviar-te una mica de temps i feina?

Què passa si volem canviar la paraula 'primer' per 'dia', 'segon' per 'nit' i 'la resta' per 'fantasma'? Utilitzem el punt i coma per fer-ho. No oblideu posar el punt i coma al final!

Tingueu en compte que no heu de posar absolutament la bandera 'i' o la bandera 'ignora', sinó que heu de posar absolutament la barra inclinada (/) després de la frase de transformació.

Ara, mirem-ho amb un exemple:

però ‘s / primer / dia / ; s / segon / nit / ; s / tercer / fantasma / ; s / darrer / fantasma / ;’ fitxer.txt > combinació.txt


Conclusió

L'editor de flux o el SED és una manera de seleccionar una paraula o un patró i transformar-lo. En realitat, és l'equivalent de línia d'ordres de les funcions 'trobar' i 'substituir' de la finestra. L'ordre SED es pot complicar molt, però si almenys coneixeu els fonaments bàsics, esteu preparats per assumir-ho! SED és en realitat una eina molt potent amb moltes funcions. Tot i que no els podem cobrir tots en un sol tutorial, vam cobrir els conceptes bàsics de SED. En essència, vam aprendre a transformar una paraula en particular mitjançant l'ordre 's' on 's' significa substitut. Podem substituir les paraules per altres, triar selectivament una línia on es produirà la substitució o fins i tot negar-la. De qualsevol manera, aquesta és la part més fàcil de SED.

Feliç codificació!