28Jun
Kai tvarkote savo serverius, vienas iš dalykų, kuriuos jums reikia atlikti pusiau reguliariai, yra failo viduryje surinkti dalykai. Galbūt tai yra žurnalo failas, arba jums reikia papildomos vienos lentelės iš savo "MySQL" atsarginės kopijos failo vidurio, kaip ir aš.
Norėdami sužinoti eilučių numerius, paprasta grep -n komanda atliko darbą( -n argumentas išveda eilučių numerius).Tai leido suprasti, ko man reikia išgauti.
grep -n wp_posts howtogeekdb010114.bak |daugiauRezultatai kažkas panašaus į tai, kas rodo eilučių numerius kairėje išvesties pusėje. Vamzdynai viską į "daugiau" užtikrina, kad pamatytumėte pirmąją eilutę be jos slinkties. Dabar turėsite eilutės numerį, nuo kurio pradėsite, ir galbūt tas, kuris pasibaigs.
4160: - Lentelės struktūra lentelėje "wp_posts" 4163: DROP LENTELĖ, jei egzistuoja "wp_posts";4166: CREATE TABLE `wp_posts`( 4203: - Duomenų lentelių lentelės` 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 05:07:23', '2006-09-11Galite, žinoma, tiesiog išgauti iš grep į kitą failą, tokį kaip:
grep keyword filename.txt> output fileMano atveju, kad nenorėjo dirbti, nes negalėjau importuoti gautos atsarginės kopijos dėl kokios nors priežasties. Taigi radau kitokį būdą išgauti linijas, naudojant sed, ir šis metodas buvo darbas
sed -n '4160,4209p' howtogeekdb0101140201.bak & gt; outputfileIš esmės sintaksė yra tokia, įsitikinęs, kad naudojate -n argumentą ir po pogrupio antrojo eilutės numerio įrašykite "p".
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp 'filename & gt; outputfilenameKeletas kitų būdų, kaip galite išskleisti konkrečias eilutes failo viduryje? Galite naudoti "head""Komandą su argumentu" + ", kad tiesiog perskaitytumėte pirmąsias x eilutes failo, o tada naudokite uodegą, norėdami išgauti tas eilutes. Ne geriausias variantas, daug pridėtinių.Paprastesnis variantas? Galite naudoti komandą split, norėdami paversti failą į kelis failus tiesiai ant norimo eilutės numerio, o tada ištraukite linijas naudodami galvos ar uodegą.
Arba galite tiesiog naudoti sed.