За да разберем номерата на линиите, простата команда 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.