Da biste odredili brojeve linija, jednostavna naredba grep-n obavila je posao ("n" argument daje redni brojevi). To je olakšalo shvatiti što trebam izvaditi.
grep -n wp_posts howtogeekdb010114.bak | more
Rezultati u nečemu ovakvom, koji prikazuje crte na lijevoj strani izlaza. Sve cijevi u "više" osiguravaju da možete vidjeti prvu liniju bez da se pomaknete. Sada morate započeti broj linije, a vjerojatno i onaj s kojim ćete završiti.
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
Možete, naravno, samo cijev izlaz iz grep u drugu datoteku, kao što je ovaj:
grep keyword filename.txt > outputfile
U mom slučaju, to nije htjelo raditi, jer nisam mogao uvesti rezultirajuću rezervnu iz nekog razloga. Dakle, pronašao sam drukčiji način izdvajanja linija pomoću sed, a ta je metoda uspjela.
sed -n '4160,4209p' howtogeekdb0101140201.bak > outputfile
Uglavnom je sintaksa ovakav, pazeći pritom na argument -n i uključite "p" nakon drugog broja retka.
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename
Na neki drugi način možete izvući određene linije usred datoteke? Možete upotrijebiti naredbu "glavu" s argumentom + broj da biste jednostavno pročitali prve x retke datoteke, a zatim upotrijebite rep za izdvajanje tih redaka. Nije najbolja opcija, puno opterećenja. Jednostavnija opcija? Možete upotrijebiti naredbu Split kako biste datoteku pretvorili u više datoteka izravno na željeni broj linije, a zatim izvlačite linije pomoću glave ili repa.
Ili jednostavno možete koristiti sed.