Ak chcete zistiť čísla riadkov, urobil úlohu jednoduchý príkaz grep -n (argument -n zobrazuje čísla riadkov). Toto umožnilo ľahko zistiť, čo som potreboval na extrakciu.
grep -n wp_posts howtogeekdb010114.bak | more
Výsledky v niečom takom, ktoré zobrazujú čísla riadkov na ľavej strane výstupu. Všetko do "viac" sa ubezpečuje, že vidíte prvý riadok bez toho, aby ste ho prechádzali. Teraz máte začiatok s číslom riadku a pravdepodobne s ním skončíte.
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
Mohli by ste, samozrejme, iba napájať výstup z grep do iného súboru, napríklad:
grep keyword filename.txt > outputfile
V mojom prípade to nechcel pracovať, pretože som nemohol importovať výslednú zálohu z nejakého dôvodu. Takže som našiel iný spôsob, ako extrahovať linky pomocou sed, a táto metóda fungovala.
sed -n '4160,4209p' howtogeekdb0101140201.bak > outputfile
V podstate je syntax takto, uistite sa, že používate argument -n a za druhé číslo riadku zahrňte "p".
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename
Niektoré ďalšie spôsoby, ako môžete vytiahnuť určité riadky uprostred súboru? Môžete použiť príkaz "head" s argumentom + číslo, aby ste si prečítali prvé x riadky súboru a potom použite chvost na extrahovanie týchto riadkov. Nie je to najlepšia voľba, veľa režijných nákladov. Jednoduchšia voľba? Môžete použiť príkaz rozdeliť súbor otočiť do viacerých súborov priamo na číslo riadku, ktoré chcete, a potom extrahovať riadky pomocou hlavy alebo chvosta.
Alebo môžete jednoducho použiť sed.