3
1

Salve a tutti,
qualcuno sa se esiste un software in grado di importare e lavorare dati da file txt?
Con LibreOffice Calc, se i file di testo organizzano i dati di un record su più righe (come spesso succede nei report txt prodotti dai sistemi aziendali) non riesco a riportarli in tabelle in Calc! In ambito professionale c'è Datawatch Monarch Pro, che costa cira 2000$ a licenza. Esiste qualcosa del genere nel nostro S.O. preferito?

Edit

Innanzi tutto grazie mille per la velocità e la precisione della risposta, considerata la richiesta a dir poco vaga da parte mia. Mi sono documentato sui tuoi suggerimenti e penso che in effetti perl sarebbe lo strumento ideale! Se non che io non sono un programmatore! Il file che devo lavorare dispone i dati di un item su 2 righe in modo simile a questo:

alt text

Questo tipo di schema si ripete (con più colonne nella versione reale) per ogni item, con l'ulteriore complicazione delle varie intestazioni/piè di pagina, che ovviamente vanno scartate nell'importazione. I geni della lampada che hanno predisposto questo (come circa 1000 altri) hanno privilegiato la leggibilità su carta, ma come vedete non la trattabilità.
Ho provato in tutti modi con gli strumenti della suite LibreOffice, ma penso che si debba andare nell'ambito dei tool/linguaggi dedicati tipo appunto awk o perl, come indicato da @enzotib.

Grazie a tutti per la collaborazione!

chiesto 01 Nov '13, 23:29

tognac73's gravatar image

tognac73
20116

modificato 03 Nov '13, 11:45

enzotib's gravatar image

enzotib ♦♦
14.0k112186

@tognac73: non usare la risposte, che servono solo per le proposte di soluzioni. Per aggiungere informazioni puoi modificare la domanda stessa, oppure puoi usare i commenti alla domanda o i commenti alle risposte. In questo caso ho spostato io il contenuto della tua risposta dentro la domanda.

(03 Nov '13, 11:43) enzotib ♦♦ enzotib's gravatar image

Non conosco strumenti con interfaccia grafica per fare quello che chiedi, ma Unix, e quindi anche Linux, è il reame incontrastato dei file di testo, per la manipolazione dei quali esiste una miriade di piccoli strumenti che ti permettono, sapendo come usarli, di raggiungere qualsiasi obiettivo. Volendo citare solo alcuni dei più conosciuti e potenti posso nominare sed, awk e perl.

Se poi vuoi modificare la tua domanda includendo un esempio breve di file di input da cui si possa capire la struttura e l'output desiderato, potremmo essere più precisi nel dare una risposta più specifica.

Edit

Con l'esempio proposto dall'utente, che riporto come un file di testo di esattamente 5 righe, supponiamo di nome input.txt:

Codice Rapporto   Saldo     Diff. anno prec.
Cod. cliente      Dubbio Esito   Data recupero  % recup.

0150.999.999      999.999   999.999
00123             999.999        31.12.2020     14,8%

con il seguente comando

sed 's/\([^ ]\) \([^ ]\)/\1_\2/g' input.txt | 
    awk 'NR%3==1 { line1 = $0 }; NR%3==2 { printf("%s %s\n", line1, $0) }; NR%3==0 {}' | 
    column -t

ottengo il seguente output:

Codice_Rapporto  Saldo    Diff._anno_prec.  Cod._cliente  Dubbio_Esito  Data_recupero  %_recup.
0150.999.999     999.999  999.999           00123         999.999       31.12.2020     14,8%

(attenzione: eventuali a capo sono introdotti dal software del sito, ma l'output è su due righe).

Breve spiegazione:

  1. con sed sostituisco ogni spazio singolo in un carattere '_', in modo da avere nomi delle colonne che siano individuabili come un'unica stringa
  2. con awk unisco su una sola riga ogni prima e seconda riga di un gruppo di tre, mentre la terza (che è vuota) viene scartata
  3. con column allineo l'output in modo che sia facilmente leggibile
coll. permanente

ha risposto 02 Nov '13, 08:54

enzotib's gravatar image

enzotib ♦♦
14.0k112186

modificato 03 Nov '13, 12:10

risposta rapida e illuminante! Grazie mille

(03 Nov '13, 11:31) tognac73 tognac73's gravatar image

@tognac73: guarda un po' se siamo sulla strada giusta

(03 Nov '13, 12:07) enzotib ♦♦ enzotib's gravatar image

direi oltre ogni attesa!! grazie mille

(03 Nov '13, 14:53) tognac73 tognac73's gravatar image

@tognac73: ti ho già detto di non usare le risposte, che sono riservate alle soluzioni

(03 Nov '13, 14:56) enzotib ♦♦ enzotib's gravatar image

ok scusa. spero di avere "premuto" il tasto giusto. per quanto mi riguarda il mio quesito è da considerare risolto. devo modificare direttamente la domanda aggiungendo un [Risolto] in testa?

(03 Nov '13, 20:08) tognac73 tognac73's gravatar image

@tognac73: no, se lo consideri risolto devi accettare la risposta, cliccando alla sua sinistra, sotto il numero che indica il voto, dove c'è il visto.

(03 Nov '13, 20:12) enzotib ♦♦ enzotib's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×20
×7

domanda posta: 01 Nov '13, 23:29

domanda visualizzata: 1,597 volte

ultimo aggiornamento: 03 Nov '13, 20:12

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.