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ą
- Teksto pridėjimas prie failo naudojant dvigubo peradresavimo operatorių
- Norėdami pridėti tekstą prie failo, naudokite komandą tee
- Teksto įtraukimas į failą naudojant sed komandą
- Standartinės išvesties ir standartinės klaidos peradresavimas į failą
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.txtTai 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ą.













