28Jun
Podczas zarządzania własnymi serwerami jedną z rzeczy, które musisz regularnie wykonywać, jest wydobywanie danych z pliku. Być może jest to plik dziennika, lub musisz dodać pojedynczą tabelę ze środka pliku kopii zapasowej MySQL, tak jak ja.
Aby obliczyć numery linii, wykonano proste polecenie grep -n( argument -n podaje numery linii).Ułatwiło to ustalenie, co muszę wydobyć.
grep -n wp_posts howtogeekdb010114.bak |więcejWyniki w coś podobnego, pokazujące numery linii po lewej stronie wyjścia. Doprowadzenie wszystkiego do "więcej" sprawia, że pierwsza linia jest widoczna bez przewijania. Teraz masz numer linii na początek i prawdopodobnie na końcu.
4160: - Struktura tabeli dla tabeli `wp_posts` 4163: DROP TABLE IF EXISTS` wp_posts`;4166: CREATE TABLE `wp_posts`( 4203: - Dumping danych dla tabeli` wp_posts` 4206: LOCK TABLES `wp_posts` WRITE; 4207: / *! 40000 ALTER TABLE` wp_posts` DISABLE KEYS * /; 4208: INSERT INTO `wp_posts`VALUES( 1,2, '2006-09-11 05:07:23', '2006-09-11Możesz oczywiście wypakować wyjście z grep do innego pliku, na przykład:
grep nazwa pliku.txt & gt; plik wyjściowyW moim przypadku, który nie chciał działać, ponieważ nie mogłem zaimportować wynikowej kopii zapasowej z jakiegoś powodu. Tak, znalazłem inny sposób wyodrębniania wierszy za pomocą sed, a ta metoda działała
sed -n '4160,4209p' howtogeekdb0101140201.bak & gt; plik wyjściowyZasadniczo składnia jest taka, upewnij się, że używasz argumentu -n i dołączasz "p" po drugim numerze wiersza. FIRSTLINENUMBER, LASTLINENUMBERp 'nazwa_pliku & gt; nazwa_pliku_wyjściowego
W jaki inny sposób można wyciągnąć określone linie w środku pliku?"Polecenie z argumentem liczby +, aby odczytać pierwsze x wierszy pliku, a następnie użyj komendy tail, aby wyodrębnić te linie. Nie najlepsza opcja, dużo kosztów ogólnych. Prostsza opcja? Można użyć polecenia split, aby przekształcić plik w wiele plików bezpośrednio na żądany numer linii, a następnie wyodrębnić wiersze za pomocą głowy lub ogona.
Lub możesz po prostu użyć sed.