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
:ciao:

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! 😊