Polecenie w linuxie

0

Mam problem a mianowicie plik z baza mający 7 milionów rekordów. Pobierając go potrzebuje mieć dane z zadanego przedziału np (180000:360000) nie mam pojęcia co wpisać w poleceniach head i tail

1

Co to za plik? Co to za baza? Zgaduje że to zwykły plik tekstowy i każdy wiersz to jeden rekord? Jak w CSV lub JSON Lines?

  • head -n N wyświetla N pierwszych linii
  • tail -n N wyświetla N ostatnich linii

Więc można dla 180000:360000 można próbować head -n 360000 baza.csv | tail -n 180000 > wycinek.csv
Oczywiście zakładam że nie ma żadnych nagłówków i innych metadanych, a dane są w postaci tekstowej i każdy rekord zawiera się w jednej linii

4

sed -n '180000, 360000p' nazwa_pliku > nowa_nazwa_pliku_z_wycinkiem_danych

1

Można też to zrobić w AWK:

awk 'NR >= 180000 && NR < 360000 {print;}' plik.dat

A tak poza tym, jeśli często masz takie operacje robić to zastanowiłbym się nad zastosowaniem bazy danych. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1