28Jun
Kui haldate oma servereid, on üks asju, mida lõpuks peate osaliselt regulaarselt tegema, on faili keskelt ekstraktide kogumine. Võib-olla on see logifail või peate lisama ühe tabeli oma MySQL-i varufaili keskelt, nagu ma tegin.
Selleks, et saaksite välja selgitada reanumbrid, tegi töö kiireks grep -n-ga( -n argument väljub reanumbrid).See muutis hõlpsasti kindlaks, mida ma väljavõtmiseks vaja oli.
grep -n wp_posts howtogeekdb010114.bak |rohkemTulemused midagi sellist, mis näitab rea numbreid väljundi vasakul küljel. Kõik toru paigaldamine "rohkem" tagab, et näete esimest rida, kus seda ei kerata. Nüüd on teil rida numbri alustamiseks ja tõenäoliselt see, mis lõppeb.
4160: - tabeli struktuur tabeli `wp_posts` jaoks 4163: DROP TABLE, kui eksisteerib` wp_posts`;4166: CREATE TABLE `wp_posts`( 4203: - Dumpingandmed tabelile` wp_posts` 4206: LOCKTABELID `wp_posts` WRITE; 4207: / *! 40000 ALTER TABLE` wp_posts` DISABLE KEYS * /; 4208: INSERT INTO `wp_posts`Väärtused( 1,2, '2006-09-11 05:07:23', '2006-09-11Võiksite loomulikult lihtsalt kiirendada väljundit grepst teise faili, näiteks:
grep märksõna failinimi.txt> output fileMinu puhul ei soovinud see tööd töötada, sest ma ei saanud mingil põhjusel varundatud varundit importida. Seega leidsin sed, et kasutades liideseid, ja see meetod töötas
sed -n '4160,4209p' howtogeekdb0101140201.bak> väljundfailPõhimõtteliselt on süntaks selline, kindlasti kasutage -n-argumenti ja lisage teise rea numbri järel "p".
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp 'filename & gt; väljundfaili nimiMõned muud võimalused, mille abil saate tõmmata konkreetset rida faili keskel välja? Võite kasutada "head""Käsuga + nr argument, et lihtsalt lugeda läbi faili esimesed x ridad, ja seejärel kasutada nende ridade ekstraktimiseks saba. Mitte parim võimalus, palju lisakulusid. Lihtsam võimalus? Võite kasutada jagatud käsu, et muuta fail mitmeks failiks otse soovitud rea numbril ja seejärel ekstraheerida ridasid peaga või sabaga.
Või võite lihtsalt kasutada sed.