Pagina 1 di 1
Sostituire i campi
Inviato: venerdì 14 aprile 2017, 8:08
da meme_14
Ciao a tutti!
Nei log vorrei sostituire il campo 'data' con una nuova modificata in un formato più utilizzabile.
Il codice è più o meno così:
Codice: Seleziona tutto
while read - r line
do
......operazioni sulla riga.......
sed -i 's/vecchia/nuova/g' nome_log
done < nome log
Ma il comando sed non mi funziona correttamente! Come posso fare?
Grazie mille!
Re: Sostituire i campi
Inviato: venerdì 14 aprile 2017, 8:16
da giulux
Benvenuto nel forum!
Non mi pare proprio un dilemma da principiante: sposto in
programmazione.
Leggete per favore la descrizione di "Dilemmi di principianti" prima di postare tutto lì.
Ciao.
Re: Sostituire i campi
Inviato: venerdì 14 aprile 2017, 9:46
da thece
secondo me stai usando sed in modo scorretto: vuoi applicare il comando sed alla singola riga oppure all'intero file? Nel primo caso non serve l'opzione -i, nel secondo il ciclo while
Re: Sostituire i campi
Inviato: venerdì 14 aprile 2017, 9:50
da meme_14
Lo utilizzo riga per riga! Ma pur non inserendo il -i non mi sostituisce la data!
Re: Sostituire i campi
Inviato: venerdì 14 aprile 2017, 10:36
da thece
Codice: Seleziona tutto
#!/bin/bash
cat "aInputTextFile.txt" | while read LINE; do
echo "$LINE" | sed 's/OLD_STRING/NEW_STRING/' >> "aOutputTextFile.txt"
done
exit 0
Re: Sostituire i campi
Inviato: venerdì 14 aprile 2017, 11:09
da UbuNuovo
Si, 'cat', 'echo' e i pipe si possono eliminare:
Codice: Seleziona tutto
while read line; do
# old_string=$(......operazioni sulla riga.......)
# new_string=$(......operazioni sulla riga.......)
sed "s/$old_string/$new_string/" <<< "$line" >> "aOutputTextFile.txt"
done < "aInputTextFile.txt"
Re: Sostituire i campi
Inviato: venerdì 14 aprile 2017, 11:43
da meme_14
Grazie!
Ma facendo così creo un nuovo file con le modifiche giusto? Le modifiche non vengono fatte in quello di input?
Re: Sostituire i campi
Inviato: venerdì 14 aprile 2017, 11:53
da UbuNuovo
Si, semmai appena uscito da ciclo puoi sostituire il file di log vecchio con quello elaborato, basta usare 'mv'.
Re: Sostituire i campi
Inviato: venerdì 14 aprile 2017, 11:56
da meme_14
Perfetto! Grazie mille!

Re: Sostituire i campi
Inviato: venerdì 14 aprile 2017, 11:59
da UbuNuovo
Ringrazia Thece, io ho solo affinato.
Ciaux
Re: Sostituire i campi
Inviato: mercoledì 19 aprile 2017, 18:41
da meme_14
Grazie a entrambi!
