28Jun

Kuinka poistaa linjat tiedoston keskeltä Linux-terminaalin avulla

Kun hallitset omia palvelimiasi, yksi niistä asioista, jotka päätyvät tekemään semi-säännöllisesti, on ote tiedosta keskeltä.Ehkä se on lokitiedosto, tai sinun täytyy lisätä yksi taulukko MySQL-varmuuskopiotiedoston keskeltä, kuten minä.

Linjan numeroiden selvittäminen teki yksinkertaisen grep -n-komennon( -n-argumentti tuottaa rivinumerot).Tämän ansiosta oli helppo selvittää, mitä tarvitsin poimia.

grep -n wp_posts howtogeekdb010114.bak |lisää

Tulokset tällä tavoin, joka näyttää rivinumerot yli ulostulon vasemmalla puolella. Kaikkien "enemmän" putoaminen varmistaa, että näet ensimmäisen rivin ilman, että sitä vieritettäisiin. Nyt sinulla on aloitusnumero, ja luultavasti loppu.

4160: Taulukon rakenne taulukon `wp_posts` 4163: DROP TABLE IF EXISTS` wp_posts`;4166: LUO TAULUKKO `wp_posts`( 4203: - Pölynpudotuksen tiedot taulukon` wp_posts` 4206: LOCK TABLES `wp_posts` WRITE; 4207: / *! 40000 ALTER TAULUKKO` wp_posts` DISABLE KEYS * /; 4208: INSERT INTO `wp_posts`VALUES( 1,2, '2006-09-11 05:07:23', '2006-09-11

Voit tietenkin vain putkea tuotoksen grep toiseen tiedostoon, kuten tämä:

grep avainsanan tiedostonimi.txt & gt; ulostulo-tiedosto

Minun tapauksessani tämä ei halunnut toimia, koska en voinut tuoda tuloksena olevaa varmuuskopiota jostakin syystä, joten löysin toisenlaisen tavan erottaa rivit käyttäen sed: tä, ja tämä menetelmä toimi

sed -n '4160,4209p' howtogeekdb0101140201.bak & gt; lähtötiedosto

Pohjimmiltaan syntaksi on näin, varmista, että käytät -n-argumenttia ja sisällytät "p" toisen rivin jälkeen

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

Joitakin muita tapoja, joilla voit vetää tiettyjä linjoja keskelle tiedostoa?"Komennolla + numero-argumentti vain lukea tiedoston ensimmäiset x-rivit ja sitten käyttää häntää poimimaan nämä viivat. Ei ole paras vaihtoehto, paljon yleiskustannuksia. Yksinkertaisempi vaihtoehto? Voit jakaa tiedoston useille tiedostoille halutulla linjanumerolla ja jakaa sitten viivat päätä tai häntää käyttäen.

Tai voit käyttää sed.