GUIDA A SED, 03 – leggere/scrivere

LEGGERE DA UN FILE O SCRIVERE IN UN FILE

Sed ha due opzioni per leggere e per scrivere:

r <filename> -> per leggere il contenuto di <filename>
w <filename> -> per scrivere in <filename>

$ cat test3
1-roma
1-parigi
1-londra
1-berlino
$ cat test4
2-pippo
2-pluto
2-paperino
$ sed 'r test4' test3
1-roma
2-pippo
2-pluto
2-paperino
1-parigi
2-pippo
2-pluto
2-paperino
1-londra
2-pippo
2-pluto
2-paperino
1-berlino
2-pippo
2-pluto
2-paperino

Legge test4 ad ogni riga di test3

$ sed '1r test4' test3
1-roma
2-pippo
2-pluto
2-paperino
1-parigi
1-londra
1-berlino

Legge il contenuto di test4 dopo aver letto la prima riga di test3

$ sed '/londra/r test4' test3
1-roma
1-parigi
1-londra
2-pippo
2-pluto
2-paperino
1-berlino

Legge il contenuto di test4 dopo aver letto la riga di test3 che matcha con “londra”

$ sed '$r test4' test3
1-roma
1-parigi
1-londra
1-berlino
2-pippo
2-pluto
2-paperino

Legge il contenuto di test4 dopo aver letto l’ultima riga di test3. “$” indica l’ultima riga.

$ sed -n '1,3w test4' test3
$ cat test4
1-roma
1-parigi
1-londra

Ha scritto le righe dalla 1 alle 3 del test3 sul file test4 (cancellando il test preesistente) e lasciando invece invariato il contenuto di test3.
“-n” -> indica a sed di non stampare il contenuto di test3 (che sarebbe il suo comportamento di default)

Aggiungiamo ora alcune righe al file test3:

$ cat test3
1-roma
1-parigi
1-londra
1-berlino
1-cane
1-gatto
1-topo
1-elefante
1-tartaruga
$ sed -n '/parigi/,/topo/w test4' test3
$ cat test4
1-parigi
1-londra
1-berlino
1-cane
1-gatto
1-topo

Scrive il range di righe da quella che matcha con “parigi” a quella che matcha con “topo” sul file test4. Test4 viene sovrascritto.

——————————————————-

INDICE

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>