Ciao,
Ho un file .csv di circa 3000000 righe nel seguente formato (ridotto per semplicità sono più di tre righe):
codice:
1,1,22.5714
1,2,22.8347
1,3,23.1627
@
3,1,22.1473
3,2,22.7027
3,3,22.7747
@
5,1,22.644
5,2,22.7653
5,3,22.6863
Quello che voglio ottenere è un altro file in cui nella prima colonna i numeri siano sequenziali, esemplificando dovrebbe diventare così:
codice:
1,1,22.5714
1,2,22.8347
1,3,23.1627
@
2,1,22.1473
2,2,22.7027
2,3,22.7747
@
3,1,22.644
3,2,22.7653
3,3,22.6863
L'ho scritto in java ma è altamente inefficiente ci mette ore e fin ora non son riuscito a terminare l'esecuzione...
codice:
public void rinominaPrimaColonna(String inputFile) throws IOException{
String line = "";
String output = "";
String s[] = inputFile.split("\\.");
String outFile = s[0]+"_t1.csv";
FileWriter fw = new FileWriter(new File(outFile));
BufferedReader orig = new BufferedReader(new FileReader(inputFile));
int i = 1;
while((line = orig.readLine()) != null){
if(!line.equals("@")){
String item[] = line.split(",");
output += i + "," + item[1] + "," + item[2] + "\n";
}
else{
output += line + "\n";
i++;
}
}
fw.write(output);
fw.flush();
fw.close();
}
Potete aiutarmi a tradurlo in bash?
Grazie