Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    71

    [BASH] modificare parti di un file

    Salve ragazzi sono nuovo qua e non sapevo bene dove mettere questa discussione. Mi scuso in anticipo se non dovesse essere il posto + adatto. Volevo chiedervi un aiuto in uno script bash (senza utilizzare AWK). Il mio programma deve:

    - aprire un file intestazione.txt
    - cambiare alcune parole del file che cominciano con AA con altre da me già trovate
    - salvare il tutto in un nuovo file nuovo.txt

    Il mio problema è andare a prendere la parola vera e propria dato che con il comando
    "grep AA intestazione.txt" mi ritorna l'intera riga e sono molto in difficoltà nel fare il parse ogni volta.

    Qualcuno di vooi ha un modo migliore per procedere? Spero di essermi spiegato bene!!

    Grazie mille per il vostro aiuto

    Per maggiore chiarezza vi metto il file da modificare:


    A: Sig./ra AAcognome AAnome
    AAindirizzo
    AAlocalita

    Pisa AAdata

    Egregio Sig./ra,

    come proprietario/a dell'auto targata AAtarga le notifichiamo la sanzione
    amministrativa di AAsoldi Euro per i seguenti AAn accessi non autorizzati alla
    Zona a Traffico Limitato

    AAaccessi

    La preghiamo di voler pagare la sanzione presso i nostri uffici in Via Bovio, 10
    entro 60 giorni dalla data della presente comunicazione

    Cordiali saluti,

    Il comando dei Vigili

  2. #2
    puoi usare sed ma poi l'output lo devi sempre dare in pasto a awk .
    ciao
    sergio

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    71
    Grazie Sergio. Il mio problema è proprio quello...non poter usare AWK. E' impossibile farlo senza?

  4. #4
    Sub... io l'ho fatto con awk.. la pelagatti si arrangia!!! ..non so ancora pero come sostituire AAaccessi..ihihihih

  5. #5
    mi è venuto in mente una possibilità di sostituire awk, puoi usare le array
    codice:
    #!/usr/bin/env bash
    
    declare -a ARRAY
    ARRAY=$1
    
    echo ${ARRAY[0]} ${ARRAY[1]}
    ogni riga che ricevi da grep la puoi processare con il codice sopra per trovare la parola che ti interessa

    ciao
    sergio

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    71
    Ho creato questo codice per sostituire i campi:

    function crea_multa {
    echo creo_multa
    local COSTO=65
    let "COSTO *= ${#Passaggi[@]}"
    local DATE=$(date +%x)

    #Sostituisco i campi di interesse con il comando "sed" creando il nuovo file <numero_targa>
    sed -e "s/AAcognome/$SURNAME/" -e "s/AAnome/$NAME/" -e "s/AAindirizzo/$ADDRESS/" \
    -e "s/AAlocalita/$CITY/" -e "s/AAtarga/$TMP/" -e "s/AAsoldi/$COSTO/" \
    -e "s/AAn/${#Passaggi[@]}/" intestazione.txt > $NOMEDIR/$TMP
    #Mi manca da sostituire la data e la lista degli accessi



    unset Passaggi

    }

    Il mio problema è sostituire "AAdata" e "AAaccessi" perchè con sed non mi prende la giusta sostituzione. Gli accessi li ho messi in un array Passaggi in cui ogni elemento deve essere scritto in una riga del file della multa....AIUTO PLEASEEEE

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 © 2024 vBulletin Solutions, Inc. All rights reserved.