A vonalszámok kitalálására egy egyszerű grep-n paranccsal került sor (a -n argumentum adja ki a vonalszámokat). Ez megkönnyítette, hogy kitaláljam, mit kell kivonni.
grep -n wp_posts howtogeekdb010114.bak | more
Olyan eredményeket jelenít meg, amelyek a kimenet bal oldalán található sorszámokat mutatják. A "több" csövezés mindenképpen gondoskodik arról, hogy láthassa az első sort anélkül, hogy gördülne. Most már megvan a vonal száma, és valószínűleg az, hogy véget ér.
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
Természetesen egyszerűen átviheted a kimenetet a grep-ből egy másik fájlba, például:
grep keyword filename.txt > outputfile
Az én esetemben ez nem akart működni, mert valamilyen okból nem importálhattam a létrejött biztonsági másolatot. Tehát egy másik módszert találtam arra, hogy kivonja a sorokat a sed használatával, és ez a módszer működött.
sed -n '4160,4209p' howtogeekdb0101140201.bak > outputfile
Alapvetően a szintaxis így van, ügyelve arra, hogy használd a -n argumentumot, és írd be a "p" -t a második sor után.
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename
Vannak más módok is, ha egy adott sor közepén egy bizonyos sort húzhat ki? Használhatja a "head" parancsot a + number argumentummal, hogy csak átolvassa a fájl első x sorát, majd a farkát használva kivonja a sorokat. Nem a legjobb megoldás, sok a többlet. Egyszerűbb lehetőség? A megosztás parancs segítségével a fájl több fájlba rendezhető a kívánt sorszámmal, majd a fej vagy a farok segítségével kiválaszthatja a sorokat.
Vagy csak használhatod a sed-et.