Jotta selvitettäisiin rivinumerot, tehtävä yksinkertainen grep-n-komento (-n-argumentti tuottaa rivinumerot). Tämän ansiosta oli helppo selvittää, mitä tarvitsin poimia.
grep -n wp_posts howtogeekdb010114.bak | more
Tulokset tällaisessa muodossa, joka näyttää rivinumerot tulostuksen vasemmalla puolella. Kaikkien "enemmän" putoaminen varmistaa, että näet ensimmäisen rivin ilman, että se rullataan. Nyt sinulla on aloitusnumero, ja luultavasti loppu.
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
Voit tietenkin vain putkea tuotoksen grepista toiseen tiedostoon, kuten tämä:
grep keyword filename.txt > outputfile
Minun tapauksessani tämä ei halunnut työskennellä, koska en voinut tuoda tuloksena olevaa varmuuskopiota jostakin syystä. Niinpä löysin toisenlaisen tavan purkaa rivit käyttäen sed, ja tämä menetelmä toimi.
sed -n '4160,4209p' howtogeekdb0101140201.bak > outputfile
Pohjimmiltaan syntaksi on näin, varmista, että käytät -n-argumenttia ja sisällytetään "p" toisen rivinumeron jälkeen.
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename
Joitakin muita tapoja, joilla voit vetää tiettyjä viivoja tiedoston keskelle? Voit käyttää "head" -komentoa + numero-argumentilla vain lukea ensimmäisen tiedoston x rivejä ja käyttää sitten häntää poimimaan nämä rivit. Ei ole paras vaihtoehto, paljon yleiskustannuksia. Yksinkertaisempi vaihtoehto? Voit jakaa tiedoston useille tiedostoille halutulla linjanumerolla ja jakaa sitten viivat päätä tai häntää käyttäen.
Tai voit vain käyttää sed.