Il giorno dom, 05-09-2004 alle 17:46 +0200, Ottavio Campana ha scritto: > Supponete di avere un file cvs con delle righe fatte così: > > 44&52,777359&15,967115&48,354073&16,217337&36,221742&15,562759&22,994321&20,403053\\ > > come fareste per fare in modo che per ogni valore, escluso quello della > prima colonna che è un indice, vengano tenuti due numeri dopo la virgola? > > Vorrei che diventasse così: > > 44&52,77&15,96&48,35&16,21&36,22&15,56&22,99&20,40 \\ sono sicuro che si possa fare in bash chiamando awk, ma oggi sono così pigro che uso il python. chiama lo script così: "python zot.py nome_file" e lui butta il risultato su stdout. import sys for l in open(sys.argv[1]): parts = l[:-3].split('&') toks = ["%.2f" % float(x.replace(',','.')) for x in parts[1:]] toks.insert(0, parts[0]) sys.stdout.write(' & '.join(toks) + ' \\\\\n') -- Federico Di Gregorio http://people.initd.org/fog Debian GNU/Linux Developer fog@debian.org INIT.D Developer fog@initd.org All programmers are optimists. -- Frederick P. Brooks, Jr.
Attachment:
signature.asc
Description: Questa parte del messaggio =?ISO-8859-1?Q?=E8?= firmata