Kako odstraniti črte iz sredine datoteke z uporabo terminala Linux
Ko upravljate lastne strežnike, je ena izmed stvari, ki jo morate opraviti pol-redno, izvleček stvari iz sredine datoteke. Morda je datoteka dnevnika, ali pa morate dodatno mizo iz sredine datoteke varnostne kopije MySQL, kot sem jaz.
Če želite ugotoviti številke vrstic, je opravilo naredil preprost grep -n ukaz (argument -n poda številke vrstic). To je olajšalo, da ugotovimo, kaj moram izvleči.
grep -n wp_posts howtogeekdb010114.bak | več
Rezultat je nekaj takega, ki prikazuje številke vrstic na levi strani izhoda. Prevzemanje vsega v »več« zagotavlja, da lahko vidite prvo vrstico, ne da bi se pri tem pomikala. Zdaj imate številko linije za začetek in verjetno tisto, s katero boste končali.
4160: - Struktura tabele za tabelo 'wp_posts' 4163: DROP TABLE IF EXISTS 'wp_posts'; 4166: CREATE TABLE 'wp_posts' (4203: - podatki o dampingu za tabelo 'wp_posts' 4206: LOCK TABLES 'wp_posts' WRITE; 4207: / *! 40000 ALTER TABLE 'wp_posts' DISABLE KEYS * /; 4208: INSERT INTO ' 'VREDNOSTI (1,2,' 2006-09-11 05:07:23 ',' 2006-09-11
Seveda bi lahko samo izpisali grep v drugo datoteko, na primer:
grep ključna beseda filename.txt> outputfile
V mojem primeru to ni želelo delati, ker iz neznanega razloga ne morem uvoziti nastale varnostne kopije. Torej sem našel drugačen način za ekstrahiranje linij s sedem in ta metoda je delovala.
sed -n '4160,4209p' howtogeekdb0101140201.bak> outputfile
V bistvu je sintaksa taka, se prepričajte, da uporabite argument -n in vključite »p« za drugo številko vrstice.
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' ime datoteke> outputfilename
Nekaj drugih načinov, kako lahko izvlečete določene črte na sredini datoteke? Lahko uporabite ukaz "head" z argumentom + številka, da preberete samo prve x vrstice datoteke in nato uporabite rep, da ekstrahirate te vrstice. Ne najboljša možnost, veliko režijskih. Enostavnejša možnost? Z ukazom split lahko datoteko spremenite v več datotek na želeno številko vrstice in nato izvlečete črte z glavo ali repom.
Lahko pa uporabiš sed.