Un esempio in Perl:
perl -e 'while(<>){s/^(.)(.)/$1.($2-1)/e; print}' << 'FILE'
0 3 3000,+00.44,-00.76,-00.03,+01.65,+2.7899,+1.2512
033000,+00.35,-00.75,+00.05,+01.71,+2.7853,+1.2503
033000,+00.44,-00.73,-00.05,+01.68,+2.7864,+1.2528
FILE
bye
gdo
----- Il 2-apr-19, alle 13:51, mauro cavagna cavagna.mauro@xxxxxxxxx ha scritto:
Ciao a tutti,
è la prima volta che mi rivolgo alla lista per chiedere aiuto. Sono un fan di
Linux ma ancora alle prime armi.
Ho un problema con la manipolazione di alcuni file di testo. Ho un centinaio
di
file che contengono migliaia di righe come queste:
0 3 3000,+00.44,-00.76,-00.03,+01.65,+2.7899,+1.2512
033000,+00.35,-00.75,+00.05,+01.71,+2.7853,+1.2503
033000,+00.44,-00.73,-00.05,+01.68,+2.7864,+1.2528
033000,+00.52,-00.71,-00.02,+01.68,+2.7854,+1.2483
033000,+00.34,-00.79,+00.00,+01.80,+2.7868,+1.2509
033000,+00.40,-00.74,+00.02,+01.85,+2.7877,+1.2519
Quello che voglio fare è sottrarre un numero al secondo carattere(numero) di
ogni riga del file, in modo da ottenere questo risultato:
0 2 3000,+00.44,-00.76,-00.03,+01.65,+2.7899,+1.2512
023000,+00.35,-00.75,+00.05,+01.71,+2.7853,+1.2503
023000,+00.44,-00.73,-00.05,+01.68,+2.7864,+1.2528
023000,+00.52,-00.71,-00.02,+01.68,+2.7854,+1.2483
023000,+00.34,-00.79,+00.00,+01.80,+2.7868,+1.2509
023000,+00.40,-00.74,+00.02,+01.85,+2.7877,+1.2519
Nel caso sopra quindi sottrarre 1 a 3.
Spero di essere stato abbastanza chiaro nella spiegazione e confido che
qualcuno
di voi mi possa aiutare.
Grazie
Mauro
----
"Tutto ciò che è necessario per il trionfo del male, è che gli uomini buoni
non
facciano niente."
Edmund Burke