[Linux-Biella] bash ed sqlite3: stringa di $x spazi

Daniele Vallini vallini.daniele a bilug.linux.it
Lun 16 Feb 2009 18:39:57 CET


Il Mon, 16 Feb 2009 13:13:32 +0100
Paul TT <paultt a bilug.linux.it> ha scritto:

> > Ho risolto cosi' il problema, non e' elegante ma funziona:
> >
> > xx="^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" # stringa di spaziatura
> > xcliente=${#cliente}                          # lunghezza della stringa cliente
> > ycliente=`expr 35 - $xcliente`                # nr caratteri da aggiungere per arrivare a |
> > zcliente=`expr substr $xx 1 $ycliente`        # stringa contenente i caratteri di spaziatura
> >
> > successivamente sed sostituisce i caratteri temporanei con gli spazi:
> >
> >  s/\^/ /g
> >
> > Sono obbligato a questo poiche' altrimenti una stringa con n spazi e'
> > semplicemente una stringa vuota ed il tutto non funziona.
> >
> >   
> no
> puoi evitare di usare sed se prima del giro reimposti l'IFS, togliendo 
> lo spazio dai separatori, per cui puoi usare direttamente la stringa di 
> spazi

cioe' il separatore a stringa nulla?  IFS=""

OK, pero' sed devo usarlo egualmente perche' sqlite3 e' molto bello
ma estremamente essenziale e non fa calcoli, salvo la funzione SUM.
Devo quindi andare in pipe con bc, ottimo come efficienza, ma quanto mai
vacconazzo poiche' per lui 0.16 si scrive solo .16 e 2.30 si scrive solo
2.3 il che in una fattura presenta piuttosto male, quindi chiedo a sed
di restaurarmi l'output brutale di bc.


> puoi anche evitare di usare xcliente mettendo direttamente la parte tra 
> {} sulla riga di ycliente

 ycliente=`expr 35 - ${#cliente}`  

Ok cosi? non ho provato ma mi pare buona idea, risparmia caratteri :-) 

Grazie per le osservazioni.

-- 
vallini.daniele a bilug.linux.it


Maggiori informazioni sulla lista Linux