Ho a che fare con un documento di testo text che contiene diverse righe e diversi campi separati da spazi, come nell'esempio:

abc def g2r 12delete3ab6
ghi j7i vcf 1adelete11

Vorrei cancellare dal documento (pensavo di usare sed) tutti i campi che contengono l'occorrenza delete (che, come si nota, è immersa all'interno di caratteri sia numerici che alfanumerici di diversa lunghezza), mantenendo però il resto delle righe. Non riesco però a trovare la sintassi giusta.
Un ringraziamento anticipato.

chiesto 28 Nov '15, 16:35

piccolo%20principiante's gravatar image

piccolo prin...
157132027


Con sed:

sed 's/[^[:space:]]*delete[^[:space:]]*//g' text >text2

oppure con awk

awk '{ for (i = 1; i <= NF; i++) if ($i ~ /delete/) $i = ""; print }' text >text2

L'output di troverà sul file text2.
Con sed si può anche modificare direttamente il file di origine usando l'opzione -i.

coll. permanente

ha risposto 28 Nov '15, 21:49

enzotib's gravatar image

enzotib ♦♦
14.0k112186

Perfetto con sed, perchè mi serve modificare il file con -i

(28 Nov '15, 22:21) piccolo prin... piccolo%20principiante's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×93
×10

domanda posta: 28 Nov '15, 16:35

domanda visualizzata: 566 volte

ultimo aggiornamento: 28 Nov '15, 22:21

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.