Salvare automaticamente l'output

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

Salvare automaticamente l'output

Messaggioda eb-ash » venerdì 12 aprile 2019, 15:31

Vorrei con Bash poter salvare automaticamente l'output come file .txt.

Eventualmente si può scegliere rea queste due opzioni?
- lasciare che faccia la domanda prima di sovrascrivere "“Output di Terminale salvato.txt” esiste già. Vuoi sostituirlo?"
- sovrascrivere senza fare domande.
eb-ash
Prode Principiante
 
Messaggi: 51
Iscrizione: febbraio 2019
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda Eresia » lunedì 15 aprile 2019, 10:05

per salvare su un file:
Codice: Seleziona tutto
./tuoscript.sh > output.txt


per salvare su un file esistente (sovrascrive):
Codice: Seleziona tutto
./tuoscript.sh >> output.txt


se non vado errando anche (per sovrascrivere un file):
Codice: Seleziona tutto
./tuoscript.sh | tee -a output.txt
emerge --auD --oneshot life/lucky-*
Avatar utente
Eresia
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 338
Iscrizione: giugno 2006
Distribuzione: arch
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda Gerry Ghetto » lunedì 15 aprile 2019, 10:23

La soluzione di Eresia funziona solo per stdout. I messaggi di stderr (e tutti gli altri file descriptors) non vengono deviati nel file.
Scusate il mio italiano. Non è la mia madrelingua.
forum.ubuntu-it.org - il peggior forum che conosco
Gerry Ghetto
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1742
Iscrizione: marzo 2015

Re: Salvare automaticamente l'output

Messaggioda UbuNuovo » lunedì 15 aprile 2019, 10:59

Eresia Immagine ha scritto:...
se non vado errando anche (per sovrascrivere un file):
Codice: Seleziona tutto
./tuoscript.sh | tee -a output.txt


No, con 'tee' stampa a schermo e contemporaneamente scrive su file; con l'opzione "-a" scrive in append mode, quindi scrive il testo dopo quello esistente.

Edit:
Non avevo fatto caso ad un'altra cosa, del post di Eresia, correggo:
Codice: Seleziona tutto
./tuoscript.sh > output.txt
Se il file "output.txt", non esiste viene creato, se il file "output.txt" esiste già, viene sovrascritto.

Codice: Seleziona tutto
./tuoscript.sh >> output.txt
Se il file "output.txt", non esiste viene creato, se il file "output.txt" esiste e contiene del testo, il nuovo testo viene aggiunto in coda al vecchio testo.
Ultima modifica di UbuNuovo il mercoledì 17 aprile 2019, 8:35, modificato 1 volta in totale.
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3288
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda eb-ash » lunedì 15 aprile 2019, 15:02

Funziona benissimo il tee. Perfetto anche l' -a.

Diciamo che adesso ho ottenuto sostanzialmente quello che mi serviva.

Sarebbe molto bello se si potesse avere nell'output un responso così:

"precedente output: " "data" e "conteggio file"

"attuale output:" "data" e "conteggio file"


Ciò perchè ogni volta devo ricordarmi di consultare il file output.txt prima di eseguire di nuovo il comando dato che cancella il vecchio risultato.
eb-ash
Prode Principiante
 
Messaggi: 51
Iscrizione: febbraio 2019
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda Eresia » lunedì 15 aprile 2019, 20:33

emerge --auD --oneshot life/lucky-*
Avatar utente
Eresia
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 338
Iscrizione: giugno 2006
Distribuzione: arch
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda eb-ash » mercoledì 17 aprile 2019, 7:34

Eresia Immagine ha scritto:https://stackoverflow.com/questions/9964823/how-to-check-if-a-file-is-empty-in-bash


Sto dando un'occhiata a questa pagina ma non trovo strumenti utili, cercherò di studiarne il contenuto. cmq grazie
eb-ash
Prode Principiante
 
Messaggi: 51
Iscrizione: febbraio 2019
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda Eresia » mercoledì 17 aprile 2019, 11:15

come no? controlli se un file è vuoto o pieno, a seconda della condizione esegui X comandi
emerge --auD --oneshot life/lucky-*
Avatar utente
Eresia
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 338
Iscrizione: giugno 2006
Distribuzione: arch
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda eb-ash » venerdì 19 aprile 2019, 0:31

Eresia Immagine ha scritto:come no? controlli se un file è vuoto o pieno, a seconda della condizione esegui X comandi


Eresia, non ho capito, il file so già che è pieno.
eb-ash
Prode Principiante
 
Messaggi: 51
Iscrizione: febbraio 2019
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda Eresia » venerdì 19 aprile 2019, 9:51

devi utilizzare una condizione, io ora non conosco bene bash, ma in pseudocodice potrebbe essere qualcosa del genere:

Codice: Seleziona tutto
if output.txt is not empty:
    print "sovrascrivere il file?"
    if yes:
        ./tuocomando.sh
    else:
        exit
else:
    ./tuocomando.sh


prova a convertirlo in bash
emerge --auD --oneshot life/lucky-*
Avatar utente
Eresia
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 338
Iscrizione: giugno 2006
Distribuzione: arch
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda eb-ash » venerdì 19 aprile 2019, 10:54

Grazie, Eresia, così riesco a comprenderlo. Però mi sembra una strada più lunga. Col "tee -a" ho già ottenuto di riempire un file.txt con i risultati dell'output.

Adesso trovato lo stratagemma di inserire il format della data e ora nel nome del file, in questo modo è costretto a crea nuovi file
e posso così continuare a leggere i vecchi risultati. Mi domandavo, c'è un modo di redirigere il risultato dentro il nome del file? Così potrei leggerlo senza aprirlo..
eb-ash
Prode Principiante
 
Messaggi: 51
Iscrizione: febbraio 2019
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda UbuNuovo » venerdì 19 aprile 2019, 11:55

si potrebbe fare ma solo se non si superano i 256 caratteri e non sono presenti "/" cosa che credo nel tuo caso ci siano.
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3288
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: Salvare automaticamente l'output

Messaggioda eb-ash » venerdì 19 aprile 2019, 16:32

UbuNuovo Immagine ha scritto:si potrebbe fare ma solo se non si superano i 256 caratteri e non sono presenti "/" cosa che credo nel tuo caso ci siano.



I caratteri sarebbero pocchissimi 5 o 6.

Per gli "/" eventualmente vedrei di adattare la situazione allo scopo

Dai! Mi suggerisci almeno un comandino da cui iniziare che in rete non riesco a trovare niente...
eb-ash
Prode Principiante
 
Messaggi: 51
Iscrizione: febbraio 2019
Sesso: Maschile


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 3 ospiti