Veiksmingi būdai pridėti tekstą prie failų sistemoje „Linux“.

Ar kada nors reikėjo pridėti naujų teksto eilučių prie esamo failo sistemoje „Linux“, pvz., atnaujinti žurnalą, pridėti naujų konfigūracijos reikšmių arba išsaugoti komandų išvestis neištrinant jau esančios informacijos? Tai dažnas poreikis, ypač kūrėjams, sistemos administratoriams ar visiems, tvarkantiems scenarijus ir automatizavimo užduotis. Netyčia perrašant failą gali būti prarasti duomenys, todėl labai svarbu žinoti, kaip pridėti tekstą, o ne jį pakeisti. Šiame vadove išnagrinėsime keletą naudingų „Linux“ komandų, skirtų turiniui pridėti prie esamo failo.

Turinys

Perrašymas prieš pridėjimą

Pridedant ir perrašant, į failą įtraukiamas turinys, tačiau tai daroma labai skirtingai. Perrašant visi esami duomenys pakeičiami nauju turiniu, veiksmingai ištrinant tai, kas anksčiau buvo faile. Kita vertus, pridėjus prie failo pabaigos pridedamas naujas turinys, neliečiant esamų duomenų.

Teksto pridėjimas prie failo naudojant dvigubo peradresavimo operatorių

Dvigubo peradresavimo operatorius (>>) yra paprastas ir efektyvus būdas pridėti naują turinį prie esamo failo sistemoje Linux. Jis automatiškai sukuria failą, jei jo nėra, ir prideda tekstą nepašalindamas esamų duomenų.

Pastaba: turite būti atsargūs naudodami peradresavimo operatorių. Vienas peradresavimo operatorius (>) perrašys failo turinį, o dvigubo peradresavimo operatorius (>>) pridės tekstą prie naujos eilutės.

Pavyzdžiui, galite naudotiechokomandą su>>operatorių, kad pridėtų žurnalo įrašus prie failo.

echo "Backup Completed Successfully on $(date)" >> backup.log

Ši komanda įrašo pranešimą su laiko žyma „backup.log“ failo pabaigoje.

Taip pat galite naudotiprintfkomandą su dvigubo peradresavimo operatoriumi (>>), kad pridėtumėte tekstą, išlaikant geresnę formatavimo valdymą. Jis dažniausiai naudojamas struktūriniams duomenims arba formatuotiems pranešimams pridėti prie failų.

printf "User login attempt: %sn" "$(date)" >> system_activity.txt

Ši komanda prie failo „system_activity.txt“ prideda suformatuotą žurnalo įrašą su dabartine data.

Taip pat galite naudoti komandą cat su dvigubo peradresavimo operatoriumi, kad sujungtumėte kelis failus. Tai padarius, vieno failo turinys pridedamas prie kito, o tai padeda išlaikyti kombinuotas ataskaitas arba žurnalus.

cat mte.txt >> example.txt

Skaityti daugiau:Strateginis požiūris į reikalavimus atitinkančių ir ekonomiškų bankininkystės programų kūrimą

Paskutinis, bet ne mažiau svarbus dalykas, taip pat galite naudoti dvigubo peradresavimo operatorių, kad išsaugotumėte bet kurios komandos išvestį konkrečiame faile.

ls >> logs.txt

Atsimink,>>tekstą prideda tik failo pabaigoje. Jis negali dėti tarp eilučių.

Norėdami pridėti tekstą prie failo, naudokite komandą tee

Komanda tee nuskaito įvestį iš terminalo ir įrašo ją į failą. Jis dažnai naudojamas, kai norite išsaugoti komandos išvestį, kol ją vis dar peržiūrite ekrane. Tai galima padaryti dviem būdais: naudojantteekomandą su-aparinktis arba naudojant dvigubo peradresavimo operatorių (>>).

Norėdami pridėti turinį naudodami-avariantas:

tee -a mte.txt

Ši komanda įves jus į interaktyvų režimą, kuriame galėsite įvesti bet kokį tekstą. Baigę paspauskite Ctrl + D, kad išeitumėte.

Antruoju metodu galite naudoti peradresavimo operatorių suteekomandą šitaip.

tee >> mte.txt

Tai veikia taip pat, tačiau įvestas tekstas nebebus rodomas terminale.

Būtinai naudokiteteekomandą su-avėliava arba>>pridedant. Priešingu atveju failas bus perrašytas.

Teksto įtraukimas į failą naudojant sed komandą

sed komanda, trumpinyssrauto redaktorius, naudojamas tekstui keisti failuose arba įvesti tiesiai iš terminalo. Ši komanda naudinga, kai reikia pridėti teksto tam tikrose eilutėse arba suderinti tam tikrus šablonus faile.

sed -i '$ a<text_to_append>' <file_name>

Pakeiskitetext_to_appendsu tekstu, kurį norite pridėti, irfile_namesu tikruoju failo pavadinimu. Pavyzdžiui:

sed -i '$ a appending text using sed' mte.txt

Čia mes naudojame$ženklą, kad pridėtumėte naują eilutę failo pabaigoje, oareiškia „pridėti“, pasakojantįsedkad pridėtumėte naują eilutę prie esamo turinio.

Thesedkomanda taip pat leidžia įterpti tekstą tam tikru eilutės numeriu. Pavyzdžiui, norėdami pridėti eilutę po trečios eilutės, naudokite3vietoj$ženklas.

sed -i '3 a appending a new line after the third line' mte.txt

Be šių komandinės eilutės įrankių, taip pat galite naudoti teksto redaktorius, pvz., Nano ir Vim, norėdami pridėti turinį bet kurioje konkrečioje vietoje.

Standartinės išvesties ir standartinės klaidos peradresavimas į failą

Linux sistemoje į tą patį failą galite nukreipti ir standartinę išvestį, ir standartinę komandos klaidą. Tai naudinga, kai norite peržiūrėti visus komandų rezultatus ir klaidų pranešimus vienoje vietoje. Pavyzdžiui, jei norite įrašyti ir sėkmingus, ir nesėkmingus komandos ls išvestis (pvz., kai kai kurių katalogų nėra).

ls /etc /unknown >> output.log 2>&1

Čia1nurodo standartinę išvestį ir2nurodo standartinę klaidą.

Šiame pavyzdyje sistema pateikia „/etc“ turinį, nes tai galiojantis katalogas, tačiau rodo klaidos pranešimą „/unknown“, nes jo nėra. Komanda prideda išvestį ir klaidos pranešimą prie „output.log“ failo.

Apvyniojimas

Teksto pridėjimas prie failo yra naudingas įgūdis tvarkyti žurnalus, automatizuoti scenarijus ir išsaugoti komandų išvestis neprarandant duomenų. Išmokę šias komandas galėsite efektyviai atnaujinti failus ir išvengti atsitiktinio perrašymo. Taip pat galite ištirti daugiau naudingų įrankių, skirtų efektyviam darbui su tekstu komandinėje eilutėje, kad padidintumėte komandų eilutės našumą.

Related Posts