Hogyan távolítsuk el a sorokat a fájl közepétől a Linux terminál használatával

Hogyan távolítsuk el a sorokat a fájl közepétől a Linux terminál használatával
Hogyan távolítsuk el a sorokat a fájl közepétől a Linux terminál használatával

Videó: Hogyan távolítsuk el a sorokat a fájl közepétől a Linux terminál használatával

Videó: Hogyan távolítsuk el a sorokat a fájl közepétől a Linux terminál használatával
Videó: PRIMETIME - Watchmaking in the News - Geneva Watch Days and 10th Anniversary Special - YouTube 2024, Lehet
Anonim
Ha saját szervereidet kezeled, az egyik dolog, amit végül félig rendszeresen kell végrehajtanod, az a fájl közepétől származó kivonat. Lehet, hogy ez egy naplófájl, vagy egy táblát kell hozzáadnia a MySQL biztonsági mentési fájlja közepétől, mint én.
Ha saját szervereidet kezeled, az egyik dolog, amit végül félig rendszeresen kell végrehajtanod, az a fájl közepétől származó kivonat. Lehet, hogy ez egy naplófájl, vagy egy táblát kell hozzáadnia a MySQL biztonsági mentési fájlja közepétől, mint én.

A vonalszámok kitalálására egy egyszerű grep-n paranccsal került sor (a -n argumentum adja ki a vonalszámokat). Ez megkönnyítette, hogy kitaláljam, mit kell kivonni.

grep -n wp_posts howtogeekdb010114.bak | more

Olyan eredményeket jelenít meg, amelyek a kimenet bal oldalán található sorszámokat mutatják. A "több" csövezés mindenképpen gondoskodik arról, hogy láthassa az első sort anélkül, hogy gördülne. Most már megvan a vonal száma, és valószínűleg az, hogy véget ér.

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

Természetesen egyszerűen átviheted a kimenetet a grep-ből egy másik fájlba, például:

grep keyword filename.txt > outputfile

Az én esetemben ez nem akart működni, mert valamilyen okból nem importálhattam a létrejött biztonsági másolatot. Tehát egy másik módszert találtam arra, hogy kivonja a sorokat a sed használatával, és ez a módszer működött.

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

Alapvetően a szintaxis így van, ügyelve arra, hogy használd a -n argumentumot, és írd be a "p" -t a második sor után.

sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename

Vannak más módok is, ha egy adott sor közepén egy bizonyos sort húzhat ki? Használhatja a "head" parancsot a + number argumentummal, hogy csak átolvassa a fájl első x sorát, majd a farkát használva kivonja a sorokat. Nem a legjobb megoldás, sok a többlet. Egyszerűbb lehetőség? A megosztás parancs segítségével a fájl több fájlba rendezhető a kívánt sorszámmal, majd a fej vagy a farok segítségével kiválaszthatja a sorokat.

Vagy csak használhatod a sed-et.

Ajánlott: