Pagina 1 di 1

[BASH] Inserire colonna con data in file di testo

Inviato: mar 10 set 2013, 21:32
da joe
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?

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

Inviato: mar 10 set 2013, 21:41
da targzeta
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