Διαχωρίστε ένα αρχείο κειμένου στο μισό (ή οποιοδήποτε ποσοστό) στο Ubuntu Linux
Αν έχετε ένα δυσκίνητο αρχείο κειμένου που προσπαθείτε να επεξεργαστείτε, το χωρισμό του σε τμήματα μπορεί μερικές φορές να βοηθήσει τον χρόνο επεξεργασίας, ειδικά εάν πρόκειται να εισάγουμε ένα αρχείο σε ένα υπολογιστικό φύλλο. Ή ίσως θελήσετε να ανακτήσετε μόνο ένα συγκεκριμένο σύνολο γραμμών από ένα αρχείο.
Εισαγάγετε διαίρεση, wc, ουρά, γάτα και grep. (μην ξεχάσετε sed και awk). Το Linux περιέχει ένα πλούσιο σύνολο βοηθητικών προγραμμάτων για την εργασία με αρχεία κειμένου στη γραμμή εντολών. Για το καθήκον μας σήμερα θα χρησιμοποιήσουμε split και wc.
Αρχικά ρίχνουμε μια ματιά στο αρχείο καταγραφής ... .
> ls -l
-rw-r-r- 1 thegeek ggroup 42046520 2006-09-19 11:42 access.log
Βλέπουμε ότι το μέγεθος του αρχείου είναι 42MB. Αυτό είναι πολύ μεγάλο ... αλλά με πόσες γραμμές έχουμε να κάνουμε; Αν θέλαμε να το εισαγάγουμε στο Excel, θα πρέπει να το κρατήσουμε λιγότερο από 65k γραμμές.
Ας ελέγξουμε την ποσότητα γραμμών στο αρχείο χρησιμοποιώντας το βοηθητικό πρόγραμμα wc, το οποίο σημαίνει "count count".
> wc -l access.log
146330 access.log
Είμαστε πολύ πάνω από το όριο μας. Θα πρέπει να το χωρίσουμε σε 3 τμήματα. Θα χρησιμοποιήσουμε το εργαλείο διαίρεσης για να το κάνουμε αυτό.
> split -l 60000 access.log
> ls -lσύνολο 79124
-rw-rw-r- 1 thegeek ggroup 40465200 2006-09-19 12:00 access.log
-rw-rw-r- 1 thegeek ggroup 16598163 2006-09-19 12:05 xaa
-rw-rw-r- 1 thegeek ggroup 16596545 2006-09-19 12:05 xab
-rw-rw-r- 1 thegeek ggroup 7270492 2006-09-19 12:05 xac
Τώρα έχουμε διαιρέσει τα αρχεία κειμένου σε 3 ξεχωριστά αρχεία, καθένα από τα οποία περιέχει λιγότερες από 60000 γραμμές, κάτι που φαινόταν σαν καλός αριθμός επιλογής. Το τελευταίο αρχείο περιέχει το ποσό που απομένει. Εάν επρόκειτο να κόψετε αυτό το συγκεκριμένο αρχείο στο μισό, θα είχατε κάνει αυτό:
> split -l 73165 access.log
Και, αυτό είναι όλο που υπάρχει σε αυτό.