Dina kasempetan anu tangtu kami hoyong ngaganti téks dina file, contona, robih dina Dokumén.txt sagala hal anu "kulawarga kuring" sebutkeun pikeun "kami." Pikeun ngahontal ieu urang tiasa nganggo pangropéa téksu anu dipikaresep (Kate, Gedit, SublimeText, jsb) tapi sok hadé pikeun terang varian, cara sanés pikeun ngahontal hasil anu sami 🙂
Éta kajadian éta kalayan ungkapan biasa ieu tiasa kahontal, paréntah sed ngan saukur megah, éta ngagaduhan varian sareng pilihan anu sajajalan tapi ... pikeun anu ngan ukur hoyong ngaganti téks tina sahenteuna jalan kompléks mungkin, pikeun aranjeunna nyaéta yén kuring nyandak varian anu langkung saderhana ieu:
Nuturkeun conto na, urang gaduh file Dokumén.txt ayana di $ HOME / Dokumén.txt sareng téks ieu:
(...) kulawarga abdi éta sapertos sadayana, sapertos milik anjeun atanapi tatangga anjeun. Kanyataanna kulawarga abdi Kami nyobian janten jalma anu tanggung jawab sareng dina pandangan masarakat, sacara politis sareng sosial leres. Nanging, di bumi kuring aya domba hideung, sareng éta peran kuring HIRUP!. Kuring kantos janten jalma anu teu sieun nyarios naon anu anjeunna pikirkeun (sanaos henteu leres dina panon masarakat), sanaos nyatana kulawarga kuring bosen ku
kokotormasarakat ayeuna.
Kalayan paréntah ieu anjeun bakal ngarobih «kulawarga abdi"ku"urang":
perl -pi -e "s[mi familia][nosotros]g" $HOME/Documento.txt
Éta saderhana 🙂
Janten téks na bakal:
(...) urang éta sapertos sadayana, sapertos milik anjeun atanapi tatangga anjeun. Kanyataanna urang Kami nyobian janten jalma anu tanggung jawab sareng dina pandangan masarakat, sacara politis sareng sosial leres. Nanging, di bumi kuring aya domba hideung, sareng éta peran kuring HIRUP!. Kuring kantos janten jalma anu teu sieun nyarios naon anu anjeunna pikirkeun (sanaos henteu leres dina panon masarakat), sanaos nyatana kulawarga kuring bosen ku
kokotormasarakat ayeuna.
Sintaksisna nyaéta:
perl -pi -e "s[lo-que-quiero-cambiar][lo-nuevo-a-poner]g" archivo-en-el-cual-reemplazar
Paréntah sigana rada rumit, hayu urang guntingkeun sakedik sareng jelaskeun sakedikna langkung gampang 😉
- perl : Naon anu bakal kami anggo, perl
- -pi : Pí, kumaha π (nilai sakitar 3.14)
- -e : E ngabayangkeun éta pikeun «e ngajalankeun» ^ - ^
- Teras dina cutatan » urang buka ku s sareng urang tutup ku a g: "sg" … Bayangkeun S pikeun Mimitian sareng G pikeun Game Over 😀
- Hurungkeun antara sg urang kedah nempatkeun dua sét kurung: [] y [], janten sapertos kitu: "S [] [] g"
- Dina jero kurung munggaran sapertos anu kuring carioskeun di luhur, téks anu urang hoyong hapus sareng gentos anu énggal bakal angkat, sedengkeun dina sét kurung kadua téks anyar anu bakal dilebetkeun bakal nuturkeun conto ieu: "S [kulawarga kuring] [urang] g"
Sederhana sanés?
Katerangan saleresna langkung seueur tibatan anu diperyogikeun pikeun paréntah, lumayan saderhana ngartos 🙂
Perl seueur pisan, langkung ti ngan ukur cara pikeun ngaganti téks, éta mangrupikeun basa anu lengkep 😉
Upami anjeun hoyong terang langkung seueur ngeunaan éta, pasang iketna perl-doc sareng tingali kana whooodo naon anu diijinkeun, éta ngan semesta anu béda.
Ku jalan kitu sareng pikeun nutup, asumsina anjeun hoyong mendakan sadaya file .txt anu anjeun gaduh dina $ HOME / Documents / sareng dina masing-masing ganti "kulawarga kuring" ku "kami", anjeun tiasa gabung milarian + perl pikeun ngahontal ieu:
find $HOME/Documentos/ -name *.txt -exec perl -p -i -e "s[mi familia][nosotros]g" {} \;
Atanapi nganggo kartu liar:
perl -p -i -e "s[mi familia][nosotros]g" $HOME/Documentos/*.txt
Masalah sareng varian kadua ieu, nyaéta yén éta moal ngagentos file anu aya dina subférder
Pokokna, kuring ngarepkeun anjeun pikaresepeun. Pikeun kuring éta leres-leres nguntungkeun, kuring parantos tiasa ngagentos téks langsung tina terminal ... hébat! 😀
21 koméntar, tinggalkeun anjeun
Nya, kuring pikir seueur urang didieu terang paréntah sed, anu ngagaduhan tujuan anu sami, éta langkung saé na langkung gampang dianggo ...
Hatur nuhun kana koméntar anjeun,
Ngan ukur dua detil, naha anjeun nyarios yén sed ngajantenkeun langkung saé? Naha leres langkung gampang dianggo nganggo seueur karakter 'anéh'?
Salam sadayana !!!. Kuring parantos ngagunakeun paréntah séd, sareng cara anu dijelaskeun di dieu ku perl langkung saderhana. Nuhun KZKG ^ Gaara !!!.
Nuhun kana koméntar 🙂
Nya, sahenteuna sigana kuring ieu langkung saderhana tibatan ungkapan biasa ... anu ku seueur karakter 'anéh', hal anu saleresna rumit pikeun dipikaharti sareng diajar tiasa dilakukeun pikeun anu henteu palinter.
Aya pepatah «lami» di luar sana: «Kuring ngalaman masalah, kuring mutuskeun pikeun nganggo ungkapan Biasa ... ayeuna kuring gaduh DUA masalah» 😉
HAHAHAHAHAHAHA !!!
Ungkapan anu teratur tiasa nyalametkeun kahirupan urang dina hiji waktos ... enya, peryogi lami pikeun diajar kumaha ngagunakeunana sareng henteu pati nyobian.
Upami kuring terang paréntah ieu sababaraha taun ka pengker, ALLAH !! kumaha saderhana hirup kuring bakal 😀
Jelas! Ditangani kalayan leres aranjeunna kuat pisan 🙂 Teu aya anu langkung saé pikeun manipulasi téks. Tapi kadang, sapertos anu anjeun carioskeun dina hal ieu sareng Perl, anjeun henteu kedah jauh teuing upami gaganti parantos cekap.
Abdi nganggo Python kitu ogé :)
Tapi dina haus kuring ningali éta langkung saderhana ... naha kuring ngalakukeun lepat?
sed -i "upami / naon-Abdi-hoyong-ngarobih / anyar-pikeun-nempatkeun /" file-to-ngaganti
heh heh ... sareng upami abdi hoyong ngagentos "http://my.blog.com/content/" ku "http://my.blog.com/uploads/files/" 😀 ... parantos aya anu parantos nempatkeun \ kalayan rohangan sareng anu sanésna, sareng janten rumit atanapi henteu?
Éta henteu wajib nganggo / salaku pamisah. Tingali sareng +
sed -i «s + http: //my.blog.com/content/+http: //my.blog.com/uploads/files/+» file
O_O… WTF!
Anjeun parantos muka sajagat pilihan pikeun kuring ayeuna .. O_O
Abdi resep tulisan ieu dimana urang sadayana diajar hiji hal 🙂
Abdi henteu terang éta ogé.
Abdi langkung resep nganggo langsung vi ..
Sakumaha saderhana:
:% s / urang / kulawarga kuring / g
% -> sakabeh dokumén
s -> milarian
g -> sadaya kajadian
Salam ..
Gracias!
Abdi henteu terang kumaha ngalakukeunana sareng vi
Ditambahkeun kana paporit!
Gracias!
Tingali upami anjeun gaduh sakedik paréntah rpl
http://microbuffer.wordpress.com/2011/02/28/rpl-buscar-y-reemplazar-strings-en-linux-unix/
Éntri anu saé! Upami aya anu resep, sami sareng paréntah séd Linux: http://www.sysadmit.com/2015/07/linux-reemplazar-texto-en-archivos-con-sed.html
Sareng naon anu kajantenan upami dina file anu kuring badé gentos gaduh tanda petik?
Conto ngagentoskeun anu nyarios téks: »1 ″ ku téks:» 2 ″
kumaha paréntahna?
halo
Abdi hoyong ngagentos senar anu aya @ di tengahna sareng ngan ukur ngarobih téks na sateuacan di.
téks pikeun ngarobih: Hidup Peru
téks anyar: Viva mi patria @percysalgado
Ditémbokeun: Hidup di tanah air abdi
Nuhun kana bantosanana
"\" Anjeun kedah nganggo garis miring sateuacan karakter nganggo dobel @, #, supados ditarjamahkeun salaku téks.
Sareng kumaha kuring ngalakukeunana dina windows ????