Salve a tutti. Ho un file di testo con più di 500.000 stringhe all'interno di varie lunghezze. Vorrei rimuovere da questo file tutte quelle che siano inferiori a 8 caratteri. Ad esempio:

abcde

abcdef

abcdefg

abcdefgh

le prime tre devono essere eliminate. Il tutto usando il terminale.

Grazie

chiesto 04 Mar '14, 22:08

f-muriana's gravatar image

f-muriana
30113


Puoi usare sed:

sed '/^.\{,7\}$/d' input-file >output-file

oppure con l'opzione -i per modificare lo stesso file di input:

sed -i '/^.\{,7\}$/d' input-file

Oppure con awk:

awk 'length >= 8' input-file >output-file

ma qui senza possibilità di modificare lo stesso file in-place.

coll. permanente

ha risposto 04 Mar '14, 22:52

enzotib's gravatar image

enzotib ♦♦
14.0k113186

Grazie per l'aiuto

(04 Mar '14, 23:04) f-muriana f-muriana's gravatar image

@f-muriana: usa le risposte solo per proporre soluzioni, per il resto usa i commenti.

(04 Mar '14, 23:26) enzotib ♦♦ enzotib'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:

×105
×81

domanda posta: 04 Mar '14, 22:08

domanda visualizzata: 2,125 volte

ultimo aggiornamento: 04 Mar '14, 23:26

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

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