Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    146

    [SHELL] filtrare le righe di un file

    Salve,
    ho due file di testo, 1 contiene dei dati statistici ed in ogni riga ci sono le misure rilevate in una singola giornata, in un altro file
    ho una serie di date(una per riga)

    dovrei trovare una sequenza di comandi per filtrare il primo file ottenendo in output solo le righe che hanno la data che appare anche nel secondo file..
    una specie di grep ripetuto sul primo file in base ad ogni valore elencato nel secondo..

    Esempio:
    Primo file : i dati
    2007-01-22,XXXX
    2007-01-19,XXXX
    2007-01-18,XXXX
    2007-01-17,XXXX
    2007-01-16,XXXX
    2007-01-15,XXXX
    2007-01-12,XXXX
    2007-01-11,XXXX
    2007-01-10,XXXX
    2007-01-09,XXXX
    2007-01-08,XXXX
    2007-01-05,XXXX

    Secondo file : le date
    2007-01-17
    2007-01-16
    2007-01-11
    2007-01-05

    Dopo l'operazione da shell dovrebbe rimanere:
    2007-01-17,XXXX
    2007-01-16,XXXX
    2007-01-11,XXXX
    2007-01-05,XXXX

    Grazie, per ogni eventuale aiuto!

  2. #2
    In pratica avevi la soluzione.

    codice:
      1 #!/bin/bash
      2 
      3 data_a=data_a.txt
      4 data_b=data_b.txt
      5 data_c=/dev/stdout
      6 
      7 for b in `cat $data_b`; do
      8     grep $b $data_a >> $data_c
      9 done
    data_{a,b,c} sono rispettivamente il tuo primo file, il secondo file e il risultato.
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  3. #3
    Se vuoi essere ancora piu` preciso:

    codice:
    grep -e "^$b," $data_a >> $data_c
    questo impedisce che l'eventuale presenza della data dopo la virgola risulti un falso positivo.
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.