Kuidas eemaldada jooned faili keskelt Linuxi terminali abil
Oma serverite haldamisel on üks asi, mida peate pooleldi regulaarselt tegema, faili väljavõtte tegemine. Võib-olla see on logifail või peate lisama ühe tabeli MySQL-i varufaili keskelt, nagu ma tegin.
Liininumbrite selgitamiseks tegi lihtsa grep -n käsu töö (-n argument väljendab rea numbrid). See pani kergesti välja selgitama, mida ma pean ekstraheerima.
grep -n wp_posts howtogeekdb010114.bak | rohkem
Tulemus on midagi sellist, mis näitab rea numbreid väljundi vasakul küljel. Kõikide lisamine “rohkem” tagab, et näete esimest rida ilma seda liigutamata. Nüüd on teil vaja alustada joone number ja tõenäoliselt see, kellega lõpetada.
4160: - Tabeli 'wp_posts' 4163 tabelstruktuur: DROP TABLE IF EXISTS 'wp_posts'; 4166: CREATE TABLE 'wp_posts' (4203: - tabeli kaadri andmed wp_posts '4206: LOCK TABLES' wp_posts 'WRITE; 4207: / *! 40000 ALTER TABLE' wp_posts 'DISABLE KEYS * /; 4208: 'VÄÄRTUSED (1,2,' 2006-09-11 05:07:23 ',' 2006-09-11
Sa võid loomulikult lihtsalt grepi väljundi teisele failile, näiteks:
grep märksõna filename.txt> väljundfail
Minu puhul ei tahtnud see töötada, sest ma ei suutnud mingil põhjusel importida varukoopiat. Niisiis, ma leidsin erineva viisi, kuidas eraldada read, kasutades sedi, ja see meetod toimis.
sed -n '4160,4209p' howtogeekdb0101140201.bak> väljundfail
Põhimõtteliselt on süntaks selline, veendudes, et kasutate -n argumenti ja lisate teise reanumbri järel “p”.
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' failinimi> väljundfaili nimi
Mõningaid muid viise, kuidas faili keskel välja tõmmata? Võid kasutada "pea" käsku + numbri argumendiga, et lihtsalt lugeda faili esimesi x ridu ning seejärel kasutada neid ridu väljavõtmiseks saba. Mitte parim valik, palju üldkulusid. Lihtsam variant? Võite kasutada jagatud käsku, et muuta fail mitmeks failiks otse soovitud reanumbrile ja seejärel tõmba jooned pea või saba abil.
Või võite lihtsalt kasutada sed.