Kā noņemt līnijas no faila vidus, izmantojot Linux termināli

Kā noņemt līnijas no faila vidus, izmantojot Linux termināli
Kā noņemt līnijas no faila vidus, izmantojot Linux termināli

Video: Kā noņemt līnijas no faila vidus, izmantojot Linux termināli

Video: Kā noņemt līnijas no faila vidus, izmantojot Linux termināli
Video: Как использовать IQOS? Самая актуальная инструкция айкос - YouTube 2024, Maijs
Anonim
Pārvaldot savus serverus, viena no lietām, ko jūs galu galā gribat veikt daļēji regulāri, ir iegūt informāciju no faila vidus. Varbūt tas ir žurnāla fails, vai arī jums ir jāpievieno viena tabula no jūsu MySQL rezerves faila vidus, tāpat kā es.
Pārvaldot savus serverus, viena no lietām, ko jūs galu galā gribat veikt daļēji regulāri, ir iegūt informāciju no faila vidus. Varbūt tas ir žurnāla fails, vai arī jums ir jāpievieno viena tabula no jūsu MySQL rezerves faila vidus, tāpat kā es.

Lai noskaidrotu līnijas numurus, darbs izpildīja vienkāršu grep -n komandu (-n arguments izsniedz līnijas numurus). Tas padarīja to viegli saprast, kas man bija nepieciešams, lai iegūtu.

grep -n wp_posts howtogeekdb010114.bak | more

Rezultāti ir kaut kas līdzīgs šim, kas rāda līnijas numurus produkcijas kreisajā pusē. Visu cauruļvadu iekļaušana "vairāk" nodrošina, ka jūs varat redzēt pirmo rindiņu bez tās ritināšanas. Tagad jums ir rindas numurs, lai sāktu ar, un, iespējams, tas, kas beidzas ar.

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

Jūs, protams, varētu vienkārši izvadīt no grep uz citu failu, piemēram, šo:

grep keyword filename.txt > outputfile

Manā gadījumā tas negribēja strādāt, jo kādu iemeslu dēļ nevarēju importēt iegūto dublējumu. Tātad, es atklāju citu veidu, kā iegūt līnijas, izmantojot sed, un šī metode darbojās.

sed -n '4160,4209p' howtogeekdb0101140201.bak > outputfile

Būtībā sintakse ir tāda, pārliecinoties, ka izmantojat -n argumentu un pēc otrās rindas numura iekļauj p.

sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename

Vai dažos citos veidos varat izvilkt konkrētas rindas faila vidū? Jūs varētu izmantot komandu "head" ar argumentu + numurs, lai tiktu vienkārši izlasīt pirmās faila x rindiņas, un pēc tam izmantojiet asti šo līniju izvilināšanai. Nav labākais variants, daudz pieskaitāmās izmaksas. Vienkāršāka iespēja? Jūs varat izmantot sadalīšanas komandu, lai failu pagrieztu vairākos failos tieši pie vajadzīgā rindas numura, un pēc tam izvelciet līnijas, izmantojot galvu vai asti.

Vai arī jūs varat vienkārši izmantot sed.

Ieteicams: