Repository 32bit  Forum
Repository 64bit  Wiki

[BASH] Inserire colonna con data in file di testo

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[BASH] Inserire colonna con data in file di testo

Messaggioda joe » mar set 10, 2013 20:32

Ho un file di testo contenente un'unica colonna di numeri.
C'è un modo semplice in bash per ottenere un file avente due colonne in cui la prima contiene una certa data e la seconda contiene il numero già presente nel file di partenza.

Tipo partendo da questo:
Codice: Seleziona tutto
13
22
31
40
59

Vorrei arrivare a quest'altro
Codice: Seleziona tutto
01/01/1965   13
02/02/1965   22
01/03/1965   31
01/04/1965   40
01/05/1965   59

La cosa potrei in qualche modo farla anche in un foglio di calcolo a celle... ma non ci vado troppo d'accordo.
Pensavo a possibili soluzioni...
Se esistesse un comando in bash tale che io do una data iniziale e una finale e lui mi stampa tutte le date ordinate progressivamente ecco che avrei la prima colonna in un file.
Poi però dovrei fondere "verticalmente" tale file con quello di partenza ottenendone un terzo avente la prima e la seconda colonna affiancate...
Non so magari c'è anche una soluzione più facile.
Per esempio so che con cat si può aggiungere il numero di riga ad un file di testo.
Se invece del numero di riga si aggiungesse una data e in seguito le successive come da calendario (quindi anni bisestili apposto ecc...). Ecco che ci saremmo...
Cosa ne pensate?
Avete qualche consiglio?
Avatar utente
joe
Master
Master
 
Messaggi: 1949
Iscritto il: ven apr 27, 2007 10:21
Slackware: 14.0
Kernel: 3.2.29-smp
Desktop: KDE-4.8.5

Re: [BASH] Inserire colonna con data in file di testo

Messaggioda targzeta » mar set 10, 2013 20:41

Se /tmp/file contiene:
Codice: Seleziona tutto
13
22
31
40
59
Il comando seguente:
Codice: Seleziona tutto
start_date='19650101'; i=0; for row in $(< /tmp/file);do echo $(date -d "$start_date + $i days" '+%d/%m/%y') $row; let i++;done
Produce:
Codice: Seleziona tutto
01/01/65 13
02/01/65 22
03/01/65 31
04/01/65 40
05/01/65 59

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6156
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron