ποιος είναι ο καλύτερος τρόπος για εύρεση και αντικατάσταση κειμένου μέσα σε αρχείο βασιζόμενος σε κανονικές εκφράσεις;
μέχρι στιγμής έχω αυτό:
Παράθεση
grep [[:blank:]][0-9][0-9][0-9][[:blank:]][0-9][0-9][[:blank:]] data.csv
με sed μπορεί να γίνει αντικατάσταση και πως;
αυτό που θέλω είναι να βγάλω το κενό μεταξύ 3ου και 4ου ψηφίου
και γενικά τι είναι καλύτερο σε αυτές τις περιπτώσεις; grep? sed? awk?
Η grep είναι μόνο για εύρεση, δεν κάνει για αντικατάσταση.
Η awk κάνει αντικατάσταση, αλλά δεν γράφει (εύκολα) στο ίδιο αρχείο.
Η sed είναι ακριβώς γι' αυτή τη δουλειά.
Βέβαια, σίγουρα θα υπάρχουν και editors με τους οποίους μπορείς να κάνεις την ίδια δουλειά με γραφικό τρόπο και όχι από κονσόλα (αν και δεν έχω ψάξει).
Παράδειγμα για ξεκίνημα:
sed 's/\( [0-9]*\) \([0-9]*.*\)/\1\2/' -i data.csv
Πρώτα δοκίμασε χωρίς το -i, ώστε να βλέπεις το output στην οθόνη χωρίς να σου πειράζει το αρχείο, και όταν είναι ΟΚ βάλε το -i για να κάνει τις αλλαγές στο αρχείο.