Ciao, è la prima volta che mi cimento con uno script bash per editare un file di testo. Ho letto qualcosa in giro e ho tirato fuori uno script ma non funziona.
Espongo il problema.
Ho un file di questo tipo in input:
codice:
1,1,22.5714
1,2,22.8347
1,3,23.1627
1,4,22.6231
@
2,1,22.6156
2,2,22.635
2,3,22.6401
2,4,22.8164
@
3,1,22.1473
3,2,22.7027
3,3,22.7747
3,4,22.5934
@
[...]
@
(ovviamente le righe sono molte di più ho tagliato per comodità)
Da questo file voglio eliminare tutte le righe che iniziano con un numero pari
quindi ottenere un file di questo tipo:
codice:
1,1,22.5714
1,2,22.8347
1,3,23.1627
1,4,22.6231
@
3,1,22.1473
3,2,22.7027
3,3,22.7747
3,4,22.5934
@
5,1,22.1473
5,2,22.7027
5,3,22.7747
5,4,22.5934
@
[...]
@
Inizialmente avevo pensato di sfruttare le '@' ma non sapevo come fare. Così ho pensato a questa soluzione:
codice:
#!/bin/bash
nomefile=GRID49_t1.csv
echo "$nomefile"
for i in {0..100..2}
do
sed "s/$i//g" "$nomefile" > prova.csv
done
Ma i problemi sono 2:
1. cancella solo il primo numero della riga
2. legge sempre dal primo file quindi cancella solo il 100 (il file arriva fino a 100 come primo numero). Ho provato ad inserire nel for questo
codice:
nomefile=prova.csv
ma poi cancella tutto.
Suggerimenti/consigli?