Početna » kako da » Kako ukloniti linije iz sredine datoteke pomoću Linux terminala

    Kako ukloniti linije iz sredine datoteke pomoću Linux terminala

    Kada upravljate vlastitim poslužiteljima, jedna od stvari koju trebate učiniti polu-redovito je izvući stvari iz sredine datoteke. Možda je to datoteka zapisnika, ili trebate dodati jednu tablicu iz sredine vaše MySQL sigurnosne datoteke, kao što sam i učinio.

    Da bi shvatili brojeve redova, jednostavna grep -n naredba obavila je posao (argument -n daje brojeve redaka). Zbog toga je bilo lako shvatiti što mi je potrebno za izdvajanje.

    grep -n wp_posts howtogeekdb010114.bak | više

    Rezultat je nešto slično ovome, koji pokazuje brojeve redaka na lijevoj strani izlaza. Piping sve u "više" osigurava da možete vidjeti prvi redak bez pomicanja po. Sada imate broj linije za početak, i vjerojatno onaj s kojim ćete završiti.

    4160: - Struktura tablice za tablicu 'wp_posts' 4163: DROP TABLE IF EXISTS 'wp_posts'; 4166: CREATE TABLE 'wp_posts' (4203: - Podaci o dampingu za tablicu 'wp_posts' 4206: LOCK TABLICE 'wp_posts' WRITE; 4207: / *! 40000 ALTER TABLE 'wp_posts' DISABLE KEYS * /; 4208: INSERT INTO 'wp_posts 'VRIJEDNOSTI (1,2,' 2006-09-11 05:07:23 ',' 2006-09-11

    Mogli biste, naravno, samo ispisati izlaz iz grep-a u drugu datoteku, kao što je ovaj:

    grep ključna riječ filename.txt> outputfile

    U mom slučaju, to nije htjelo raditi, jer iz nekog razloga nisam mogao uvesti dobivenu sigurnosnu kopiju. Tako sam pronašao drugačiji način izdvajanja linija korištenjem seda, i ova metoda je uspjela.

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

    U osnovi sintaksa je takva, pazeći da koristite argument -n i uključite “p” nakon drugog broja retka.

    sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' naziv datoteke> outputfilename

    Neki drugi načini na koje možete izvući određene linije u sredini datoteke? Možete upotrijebiti naredbu "head" s argumentom + number da biste samo pročitali prve x crte datoteke, a zatim upotrijebite rep da biste izvukli te retke. Nije najbolja opcija, puno nadzemnih. Jednostavnija opcija? Pomoću naredbe split možete pretvoriti datoteku u više datoteka točno na željeni broj retka, a zatim izdvojiti crte pomoću glave ili repa.

    Ili možete koristiti samo sed.