[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