Da dbf a bib e Jabref

Calogero Massimo Cammalleri palug@aacweb.it
Gio 3 Nov 2005 20:07:29 CET


iw9cmd flavio ha scritto:

> cut


> bibtex , che io ne sappia, non gestisce i campi personalizzati, per
> ogni categoria ha i suoi campi e basta. L'unica scappatoia è il campo
> annote che permette di scrivere un commento non visualizzato o il
> comando note che permette di scrivere un commento visualizzato nelle
> bibliografia.
> Puoi scrivere qualsiasi cosa con i commenti ma penso proprio che non
> sia questo che ti interessa.
>
> cut


> suggerimento:
> dividi gli articoli in tabelle diverse a seconda di che si tratta
> (oppure metti un flag di riconoscimento ad ogni voce della
> bibliografia che so a nel primo campo per articolo l per libro...).
> Esporta le tabelle una ad una in csv usando un separatore
> scognito, tipo @, $ o £. Poi converti con uno scriptino in bash o in
> perl che scriva un file bibtex. Poi unisci i file e il gioco è fatto.
> Se hai messo il flag lo script dovrà contenere un po' di logica di
> controllo tipo se il primo campo è una a allora...
> E in questo caso la tabella sarà unica.
> Ho uno scriptino in bash che se ne occupa ma è una ciofeca che va
> modificata per ogni tipo voce e che funziona per tabelle singole.
> L'ho fatto in un momento in cui avevo poco tempo per  pensare a cose
> più complicate e avavo pochi tipi di voce. Altri sapranno fare
> certamente di meglio.
>
> #!/bin/bash
> entry=@Article{A_
> file=art.csv
> numlinee=`wc -l $file |cut -d" " -f1`
> i=0
> while [ $i -lt $numlinee ]
>   do
>   i=$(( $i + 1 ))
>   linea=`head -n $i $file|tail -1`
>   author=`echo $linea|tr -d \"|cut -d$ -f1`
>   title=`echo $linea|tr -d \"|cut -d$ -f2`
>   jour=`echo $linea|tr -d \"|cut -d$ -f3`
>   year=`echo $linea|tr -d \"|cut -d$ -f4`
>   vol=`echo $linea|tr -d \"|cut -d$ -f5`
>   pag=`echo $linea|tr -d \"|cut -d$ -f6`
>   echo $entry$i,
>   echo author={$author},
>   echo title={$title},
>   echo journal={$jour},
>   echo year={$year},
>   echo volume={$vol},
>   echo pages={$pag},
>   echo }
>
> Questo converte un file csv (art.csv) solo di articoli coi campi 
> separati da $ la cui
> sintassi è:
> autore$titolo$giornale$anno$volume$pagina$
> tr -d \" serve per levare " che avevo utilizzato come indicatore di
> testo. Con un case, un flag nel primo campo un po' di copia e incolla
> e un minimo di attenzione dovresti arrivare a quello che vuoi.
>
> cut

Ah, Ah, AH, ;-) .

> P.S.: altri avranno a che dire sull'uso improprio di bash e diranno
> che era meglio il perl, awk o altra roba del genere. A me veniva
> comodo così, anche se è poco ortodosso.


però funziona :-) :-$
C.



Maggiori informazioni sulla lista palermo