Muszę usunąć pierwsze 42 wiersze zrzutu SQL 2 GB.
Wiem, że mogę wyświetlić pierwsze wiersze, używając:
head -n 44 dump.sql
Ale czy istnieje możliwość ich edycji lub usunięcia?
command-line
Kohjah Breese
źródło
źródło
tail
. Wiele razy znalazłem coś nowego do nauczenia się na podstawie twoich odpowiedzi. dzięki.sed -i 1,50000000d 17GigFile
tworzy plik tymczasowy,sedXYZ
który zużywa o wiele więcej gigabajtów. Czy istnieje podejście bez plików tymczasowych?tail -n +43
ihead -n 44
jak wspomniano w pytaniu?To wydaje się najłatwiejsze:
Usuń wiersze 1-42 z test.sql i zapisz jako test2.sql
źródło
Spróbuj tego,
tail -n +43 dump.sql > dump_new.sql
źródło
Możesz używać Vima w trybie Ex:
1
przejdź do pierwszej linii42
wybierz 42 linied
usunąćx
Zapisz i zamknijźródło
Niestety nie mogę teraz podać rzeczywistego kodu. Spróbuj jednak spojrzeć na coś w stylu
To, co należy zrobić (po prawidłowym sformatowaniu), to policzyć liczbę wierszy w pliku (wc -l), odjąć od niego 44 (-44), a następnie wydrukować wszystko, zaczynając od 45-tej linii w pliku.
Mam nadzieję, że to pomoże i powodzenia.
źródło
wc -l
ponieważ wywołujesz plik, przetwarzasz go dwukrotnie, podczas gdysed
lubtail
przetwarzasz go tylko raz.Spróbuj tego,
lub,
źródło
Po prostu to dodaj. Jeśli używasz komputera Mac, musisz dodać rozszerzenie kopii zapasowej. Odpowiedź z tego postu .
źródło
Z powodu
sed
rozbieżności w systemach Linux i Mac postanowiłem użyćtail -n +43 dump.sql > dump.sql
formatu.źródło