28Jun

Ako odstrániť riadky zo stredu súboru pomocou terminálu Linux

Keď spravujete svoje vlastné servery, jedna z vecí, ktoré skončíte a musíte vykonať na polopriestore, je extrahovať veci zo stredu súboru. Možno je to súbor denníka, alebo potrebujete doplniť jednu tabuľku od stredu vášho záložného súboru MySQL, ako som to urobil.

Ak chcete zistiť čísla riadkov, jednoduchý príkaz grep -n vykonal úlohu( argument -n zobrazuje čísla riadkov).Toto umožnilo ľahko zistiť, čo som potreboval na extrakciu.

grep -n wp_posts howtogeekdb010114.bakviac

Výsledky v niečom takom, ktoré zobrazujú čísla riadkov na ľavej strane výstupu. Všetko do "viac" sa ubezpečuje, že vidíte prvý riadok bez toho, aby ste ho prechádzali. Teraz máte začiatok s číslom riadku a pravdepodobne s ním skončíte.

4160: - Štruktúra tabuľky pre tabuľku `wp_posts '4163: TABUĽKA DROP AK JE EXISTEN` wp_posts`;4166: Vytvorte tabuľku `wp_posts`( 4203: - Dumpingové dáta pre tabuľku` wp_posts '4206: ZAMKNUTIE TABUĽKY `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

Môžete samozrejme len napájať výstup z grep do iného súboru, napríklad:

grep názov súboru kľúčového slova.txt> výstupný súbor

V mojom prípade to nechcel pracovať, pretože som nemohol importovať výslednú zálohu z nejakého dôvodu. Takže som našiel iný spôsob, ako extrahovať riadky pomocou sed a táto metóda fungovala

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

V podstate je syntax takýto, uistite sa, že používate argument -n a za číslo druhej riadky obsahuje "p"

sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp 'názov súboru & gt; outputfilename

Niektoré ďalšie spôsoby, ako môžete vytiahnuť určité riadky uprostred súboru? Môžete použiť "hlava"S príkazom + number, aby ste si len prečítali prvé x riadky súboru a potom použite chvost na extrahovanie týchto riadkov. Nie je to najlepšia voľba, veľa režijných nákladov. Jednoduchšia voľba? Môžete použiť príkaz rozdeliť súbor otočiť do viacerých súborov priamo na číslo riadku, ktoré chcete, a potom extrahovať riadky pomocou hlavy alebo chvosta.

Alebo môžete jednoducho použiť sed.