Kā noņemt līnijas no faila vidus, izmantojot Linux termināli
Kad pārvaldāt savus serverus, viena no lietām, kas jums jādara, veicot daļēju regulāru darbību, ir ekstrakts no faila vidus. Varbūt tas ir žurnāla fails, vai arī jums ir nepieciešama papildu tabula no jūsu MySQL rezerves faila vidus, tāpat kā man.
Lai noskaidrotu līniju numurus, vienkāršā grep -n komanda veica darbu (-n arguments izsauc rindas numurus). Tas ļāva viegli saprast, kas man vajadzīgs, lai iegūtu.
grep -n wp_posts howtogeekdb010114.bak | vairāk
Rezultāti ir tādi, kas parāda līnijas numurus izejas kreisajā pusē. Viss cauruļvads “vairāk” nodrošina, ka jūs varat redzēt pirmo rindu bez tās ritināšanas. Tagad jums ir jāsāk līnijas numurs, un, iespējams, tas, kam jāpabeidz.
4160: - tabulas 'wp_posts' 4163 tabulas struktūra: DROP TABLE IF EXISTS 'wp_posts'; 4166: CREATE TABLE 'wp_posts' (4203: - tabulas dempinga dati wp_posts '4206: LOCK TABLES' wp_posts 'WRITE; 4207: / *! 40000 ALTER TABLE' wp_posts 'DISABLE KEYS * /; 4208: INSERT INTO' wp_posts 'VĒRTĪBAS (1,2,' 2006-09-11 05:07:23 ',' 2006-09-11
Jūs, protams, varētu vienkārši izvilkt izeju no grep uz citu failu, piemēram:
grep atslēgvārds filename.txt> izvades fails
Manā gadījumā tas negribēja strādāt, jo nevarēju importēt iegūto dublējumu kāda iemesla dēļ. Tātad, es atklāju citu veidu, kā iegūt rindas, izmantojot sed, un šī metode strādāja.
sed -n '4160,4209p' howtogeekdb0101140201.bak> izvades fails
Būtībā sintakse ir tāda, pārliecinoties, ka izmantojat -n argumentu, un pēc otrā rindas numura pievienojiet “p”.
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' faila nosaukums> outputfilename
Daži citi veidi, kā faila vidū var izvilkt konkrētas līnijas? Jūs varat izmantot komandu “head” ar + skaitļa argumentu, lai vienkārši izlasītu faila pirmās x rindas, un pēc tam izmantojiet astes, lai iegūtu šīs līnijas. Nav labākais risinājums, daudz pieskaitāmās izmaksas. Vienkāršāka izvēle? Varat izmantot sadalīto komandu, lai failu pārvērstu vairākos failos tieši pie vajadzīgā līnijas numura, un pēc tam izvilkt līnijas, izmantojot galvu vai asti.
Vai arī varat vienkārši izmantot sed.