If-Koubou

Как да премахнете линии от средата на файл, като използвате терминала за

Как да премахнете линии от средата на файл, като използвате терминала за (Как да)

Когато управлявате собствените си сървъри, едно от нещата, до които трябва да правите на полуректни периоди, е да извлечете неща от средата на файла. Може би това е лог файл или трябва да добавите отделна таблица от средата на резервния файл на 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.