28Jun

Cum să eliminați linii din mijlocul unui fișier utilizând terminalul Linux

click fraud protection

Când gestionați serverele proprii, unul dintre lucrurile pe care trebuie să le realizați pe o bază semi-regulată este extragerea de chestii din mijlocul unui fișier. Poate este un fișier jurnal sau trebuie să adăugați o singură masă din mijlocul fișierului de backup MySQL, așa cum am făcut-o.

Pentru a determina numerele de linie, o comandă grep -n simplă a făcut lucrarea( argumentul -n scoate numerele de linie).Acest lucru a făcut ușor să dau seama ce am nevoie pentru a extrage.

grep -n wp_posts howtogeekdb010114.bak |mai multe

Rezultate în ceva de genul asta, care arată numerele de linie de pe partea stângă a ieșirii.Ținând totul în "mai mult", asigurați-vă că puteți vedea prima linie fără să derulați. Acum aveți numărul liniei pentru a începe cu, și probabil cel cu care se termină.

4160: - Structura tabelului pentru tabelul `wp_posts` 4163: TABEL DROP DACĂ EXISTĂ" wp_posts ";4166: CREATE TABLE `wp_posts`( 4203: - Datele de dumping pentru tabelul` wp_posts` 4206: TABLURI DE BLOC `wp_posts` WRITE; 4207: / *! 40000 ALTER TABLE` wp_posts` DISABLE KEYS * /; 4208: INSERT IN wp_posts`VALUES( 1,2, '2006-09-11 05:07:23', '2006-09-11
instagram viewer

Puteti, desigur, sa iesiti iesirea din grep intr-un alt fisier, asa cum este:

grep filename.txt & outputfile

În cazul meu, care nu a vrut să lucreze, pentru că nu am putut importa backup-ul rezultat dintr-un motiv oarecare. Deci, am găsit o altă modalitate de a extrage liniile folosind sed și această metodă a funcționat

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

În esență, sintaxa este ca aceasta, asigurându-vă că folosiți argumentul -n și includeți p după numărul de linia a doua

sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp 'filename & gt; outputfilename

Unele alte moduri în care puteți trage linii specifice în mijlocul unui fișier Puteți folosi "capul"Cu argumentul număr + pentru a citi doar prin primele linii x ale unui fișier, apoi utilizați coada pentru a extrage acele linii. Nu este cea mai bună opțiune, o mulțime de cheltuieli generale. Opțiune mai simplă?Puteți folosi comanda split pentru a transforma fișierul în mai multe fișiere chiar la numărul de linie dorit și apoi extrageți liniile utilizând capul sau coada.

Sau puteți folosi doar sed.