Norėdami sužinoti eilučių numerius, paprasta grep -n komanda atliko darbą (-n argumentas išveda eilučių numerius). Tai leido suprasti, ko man reikia išgauti.
grep -n wp_posts howtogeekdb010114.bak | more
Rezultatai kažką panašaus į tai, kas rodo eilučių numerius kairėje išvesties pusėje. Vamzdynai viską į "daugiau" užtikrina, kad pamatytumėte pirmąją eilutę be jos slinkties. Dabar turėsite eilutės numerį, nuo kurio pradėsite, ir galbūt tas, kuris pasibaigs.
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
Galite, žinoma, tiesiog išvesti iš grep į kitą failą, tokį kaip:
grep keyword filename.txt > outputfile
Mano atveju tai nenorėjo dirbti, nes dėl kokios nors priežasties nepavyko importuoti gauto atsarginės kopijos. Taigi, radau kitokį būdą išgauti linijas, naudojant sed, ir šis metodas dirbo.
sed -n '4160,4209p' howtogeekdb0101140201.bak > outputfile
Iš esmės sintaksė yra tokia, įsitikinusi, kad naudojate -n argumentą ir po pogrupio antrojo eilutės numerio įrašykite "p".
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename
Keletas kitų būdų, kaip išskleisti konkrečias eilutes failo viduryje? Galite naudoti komandą "head" su argumentu "+", kad tik perskaitytumėte pirmąsias x eilutes failo, o tada naudokite uodegą, kad išskirtumėte šias eilutes. Ne geriausias variantas, daug pridėtinių. Paprastesnis variantas? Galite naudoti komandą split, norėdami paversti failą į kelis failus tiesiai ant norimo eilutės numerio, o tada ištraukite linijas naudodami galvos ar uodegą.
Arba galite tiesiog naudoti sed.