Когато управлявате собствените си сървъри, едно от нещата, до които трябва да правите на полуректни периоди, е да извлечете неща от средата на файла. Може би това е лог файл или трябва да добавите отделна таблица от средата на резервния файл на MySQL, както и аз.
За да разберем номерата на линиите, простата команда grep -n е изпълнила задачата (аргументът -n извежда номерата на редовете). Това направи лесно да разбера какво трябва да извлека.
grep -n wp_posts howtogeekdb010114.bak | Повече ▼
Резултатите в нещо подобно, което показва номерата на линиите от лявата страна на изхода. Вкарването на всичко в "повече" гарантира, че можете да видите първия ред, без да го превъртате. Сега вече имате номер на ред, а може би и този, който ще свърши.
4160: - Структурата на таблицата за таблицата "wp_posts" 4163: ТАБЛИЦА НА ДРОБА, АКО съществува "wp_posts"; 4166: CREATE TABLE 'wp_posts' (4203: - Дъмпингови данни за таблицата 'wp_posts' 4206: ЗАКЛЮЧВАНЕ НА ТАБЛИЦИ 'wp_posts' WRITE; 4207: / *! 40000 ALTER TABLE 'wp_posts' DISABLE KEYS * "VALUES (1,2, '2006-09-11 05:07:23', '2006-09-11
Бихте могли, разбира се, просто да потопите изхода от grep в друг файл, както следва:
grep ключова дума filename.txt> outputfile
В моя случай това не искаше да работи, защото не можах да импортирам полученото архивиране по някаква причина. Така че, намерих друг начин за извличане на линиите, използвайки sed, и този метод работи.
sed -n '4160,4209p "howtogeekdb0101140201.bak> outputfile
По същество синтаксисът е такъв, като се уверите, че използвате аргумента -n и включете "p" след втория номер на ред.
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp "име на файл> име на изход
Някои други начини можете да извадите определени линии в средата на файл? Можете да използвате командата "главата" с аргумента "брой", за да прочетете само първите х линии на файл и след това да използвате опашката, за да извлечете тези линии. Не е най-добрият вариант, много режийни. По-проста опция? Можете да използвате командата за разделяне, за да превърнете файла в няколко файла точно в желания от вас ред и след това да извлечете линиите с главата или опашката.
Или просто можете да използвате sed.