Kako ukloniti linije iz sredine datoteke pomoću Linux terminala

Kako ukloniti linije iz sredine datoteke pomoću Linux terminala
Kako ukloniti linije iz sredine datoteke pomoću Linux terminala

Video: Kako ukloniti linije iz sredine datoteke pomoću Linux terminala

Video: Kako ukloniti linije iz sredine datoteke pomoću Linux terminala
Video: Setting up Steam Remote Play (PC to PC, 2022) - YouTube 2024, Svibanj
Anonim
Kada upravljate vlastitim poslužiteljima, jedna od stvari koju trebate učiniti na polu-redovnoj osnovi je ekstrakt stvari iz sredine datoteke. Možda je to zapisnička datoteka ili trebate dodati jednu tablicu iz sredine vaše MySQL sigurnosne datoteke, kao što sam to učinila.
Kada upravljate vlastitim poslužiteljima, jedna od stvari koju trebate učiniti na polu-redovnoj osnovi je ekstrakt stvari iz sredine datoteke. Možda je to zapisnička datoteka ili trebate dodati jednu tablicu iz sredine vaše MySQL sigurnosne datoteke, kao što sam to učinila.

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.

Preporučeni: