Jak odstranit čáry ze středu souboru pomocí terminálu Linux

Video: Jak odstranit čáry ze středu souboru pomocí terminálu Linux

Video: Jak odstranit čáry ze středu souboru pomocí terminálu Linux
Video: Rozdíl mezi RAW a JPEG formátem?? 2024, Březen
Jak odstranit čáry ze středu souboru pomocí terminálu Linux
Jak odstranit čáry ze středu souboru pomocí terminálu Linux
Anonim
Když spravujete své vlastní servery, jedna z věcí, které nakonec musíte dělat na polokomponentní bázi, je extrahovat věci ze středu souboru. Možná je to soubor s protokoly, nebo potřebujete přidat jednu tabulku uprostřed záložního souboru MySQL, jako já.
Když spravujete své vlastní servery, jedna z věcí, které nakonec musíte dělat na polokomponentní bázi, je extrahovat věci ze středu souboru. Možná je to soubor s protokoly, nebo potřebujete přidat jednu tabulku uprostřed záložního souboru MySQL, jako já.

Chcete-li zjistit čísla řádků, provedl jednoduchý příkaz grep -n (argument -n zobrazuje čísla řádků). Díky tomu bylo snadné zjistit, co potřebuji k extrakci.

grep -n wp_posts howtogeekdb010114.bak | more

Výsledkem je něco podobného, které ukazuje čísla řádků na levé straně výstupu. Vše, co se děje do "více", zajišťuje, že vidíte první řádek, aniž byste procházeli. Nyní máte počáteční číslo linky a pravděpodobně ten, který skončí.

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

Mohli byste samozřejmě pouze vypustit výstup z grep do jiného souboru, například:

grep keyword filename.txt > outputfile

V mém případě to nechtělo pracovat, protože jsem z nějakého důvodu nemohl importovat výslednou zálohu. Takže jsem našel jiný způsob, jak extrahovat linky pomocí sed, a tato metoda fungovala.

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

V podstatě je tato syntaxe takto: ujistěte se, že používáte argument -n a za druhé číslo řádku přidáte "p".

sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename

Některé další způsoby, jak můžete vytáhnout určité čáry uprostřed souboru? Pomocí příkazu "head" pomocí argumentu + můžete jednoduše číst první řádek x souboru a pak pomocí ocasu tyto řádky extrahovat. Nejlepší alternativa, spousta režie. Jednoduchá volba? Pomocí příkazu rozdělit můžete soubor přesunout do více souborů přímo na požadované číslo řádku a potom extrahovat řádky pomocí hlavy nebo ocasu.

Nebo můžete jen použít sed.

Doporučuje: