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

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

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

Видео: Как да премахнете линии от средата на файл, като използвате терминала за
Видео: how to make video transmitter , altium designer - YouTube 2024, Ноември
Anonim
Когато управлявате собствените си сървъри, едно от нещата, до които трябва да правите на полуректни периоди, е да извлечете неща от средата на файла. Може би това е лог файл или трябва да добавите отделна таблица от средата на резервния файл на MySQL, както и аз.
Когато управлявате собствените си сървъри, едно от нещата, до които трябва да правите на полуректни периоди, е да извлечете неща от средата на файла. Може би това е лог файл или трябва да добавите отделна таблица от средата на резервния файл на MySQL, както и аз.

За да разберем номерата на линиите, простата команда grep -n е изпълнила задачата (аргументът -n извежда номерата на редовете). Това направи лесно да разбера какво трябва да извлека.

grep -n wp_posts howtogeekdb010114.bak | more

Резултатите в нещо подобно, което показва номерата на линиите от лявата страна на изхода. Вкарването на всичко в "повече" гарантира, че можете да видите първия ред, без да го превъртате. Сега вече имате номер на ред, а може би и този, който ще свърши.

4160:-- Table structure for table `wp_posts` 4163:DROP TABLE IF EXISTS `wp_posts`; 4166:CREATE TABLE `wp_posts` ( 4203:-- Dumping data for table `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-11

Бихте могли, разбира се, просто да потопите изхода от grep в друг файл, както следва:

grep keyword filename.txt > outputfile

В моя случай това не искаше да работи, защото не можах да импортирам полученото архивиране по някаква причина. Така че, намерих друг начин за извличане на линиите, използвайки sed, и този метод работи.

sed -n '4160,4209p' howtogeekdb0101140201.bak > outputfile

По същество синтаксисът е такъв, като се уверите, че използвате аргумента -n и включете "p" след втория номер на ред.

sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename

Някои други начини можете да извадите определени линии в средата на файл? Можете да използвате командата "главата" с аргумента "брой", за да прочетете само първите х линии на файл и след това да използвате опашката, за да извлечете тези линии. Не е най-добрият вариант, много режийни. По-проста опция? Можете да използвате командата за разделяне, за да превърнете файла в няколко файла точно в желания от вас ред и след това да извлечете линиите с главата или опашката.

Или просто можете да използвате sed.

Препоръчано: