په ځینې وختونو کې موږ غواړو چې متن په فایل کې ځای په ځای کړو ، د مثال په توګه ، په کې تغیرات لاسوند هرڅه چې "زما کورنۍ" د "زموږ لپاره" وايي. د دې ترلاسه کولو لپاره موږ کولی شو زموږ غوره شوي متن ایډیټر وکاروو (کیټ ، ګیډیټ ، سبیل ټیکسټ ، او داسې نور) مګر دا تل ښه ده چې تغیرات وپیژنئ ، ورته ورته پایلې ترلاسه کولو لپاره نورې لارې 🙂
دا د دې سره پیښیږي منظم څرګندونې دا ترلاسه کیدی شي ، د سیډ کمانډ په ساده ډول عالي دی ، دا نه ختمیدونکي ډولونه او اختیارونه لري مګر ... د هغو کسانو لپاره چې غواړي یوازې د متن څخه ځای په ځای کړي لږترلږه پیچلې لاره ممکنه، د دوی لپاره دا دی چې زه دا خورا ساده بiantه لرم:
د مثال په تعقیب ، موږ فایل لرو لاسوند کې موقعیت لري OME کور / سند د لاندې متن سره:
(...) زما کورنۍ دا د ټولو په څیر دی ، لکه ستاسو یا ستاسو د ګاونډي په څیر. په حقیقت کی زما کورنۍ موږ هڅه کوو چې مسؤل خلک او د ټولنې په نظر کې ، له سیاسي او ټولنیز پلوه سم وي. په هرصورت ، زما په کور کې تور پسه شتون لري ، او دا زما رول LOL دی! زه تل یو څوک یم چې د هغه څه په ویلو نه ډاریږي چې هغه څه فکر کوي (حتی که دا په څرګنده د ټولنې په نظر کې سمه نه وي) ، که څه هم په حقیقت کې زما کورنۍ د دې سره تنګ شوې
چټلنننۍ ټولنه.
د لاندې قوماندې سره به تاسو بدل شي «زما کورنۍ"لخوا"موږ":
perl -pi -e "s[mi familia][nosotros]g" $HOME/Documento.txt
دا دومره ساده ده
نو دا متن به وي:
(...) موږ دا د ټولو په څیر دی ، لکه ستاسو یا ستاسو د ګاونډي په څیر. په حقیقت کی موږ موږ هڅه کوو چې مسؤل خلک او د ټولنې په نظر کې ، له سیاسي او ټولنیز پلوه سم وي. په هرصورت ، زما په کور کې تور پسه شتون لري ، او دا زما رول LOL دی! زه تل یو څوک یم چې د هغه څه په ویلو نه ډاریږي چې هغه څه فکر کوي (حتی که دا په څرګنده د ټولنې په نظر کې سمه نه وي) ، که څه هم په حقیقت کې زما کورنۍ د دې سره تنګ شوې
چټلنننۍ ټولنه.
ترکیب په لاندې ډول دی:
perl -pi -e "s[lo-que-quiero-cambiar][lo-nuevo-a-poner]g" archivo-en-el-cual-reemplazar
کمانډ ممکن یو څه پیچلی ښکاري ، راځئ چې دا یو څه مات کړو او یو څه نور په ساده ډول تشریح کړو 😉
- پریل : څه چې موږ به وکاروو ، پرل
- -پی : Pí ، څنګه π (د 3.14 نږدې ارزښت)
- -e : ای د دې لپاره د «ای د عملي کولو لپاره تصور کوي ^ - ^
- بیا په قیمتونو کې » موږ د s او موږ د g: "سګ" ... د پیل لپاره د ایس لپاره او د لوبو لپاره د جی لپاره تصور وکړئ
- تر منځ وګرځه sg موږ باید د بریکٹ دوه سیټونه ولیکو: [] y []د دې لارې پاتې کیدل: "S [] [] g"
- د لومړي بریکٹونو دننه لکه څنګه چې ما پورته وویل ، هغه متن چې موږ یې د نوي سره ایستل او ځای په ځای کول غواړو هغه به لاړ شي ، پداسې حال کې چې د بریکٹونو په دوهم سیټ کې به نوی متن لاړ شي ، د مثال په تعقیب: "S [زما کورنۍ] [موږ] g"
ساده نه دی؟
توضیحي واقعیا د هغه څه په پرتله خورا پراخه ده چې د قوماندې لپاره اړین دي ، د پوهیدلو لپاره خورا ساده دی
پرل خورا ډیر دی ، د متن ځای په ځای کولو لپاره یوازې د یوې لارې څخه ، دا یوه ټوله ژبه ده 😉
که تاسو غواړئ د دې په اړه نور معلومات ترلاسه کړئ ، کڅوړه نصب کړئ پرل - ډیک او یو څه وګورئ چې ووډو څه اجازه ورکوي ، دا یوازې یو مختلف کائنات دی.
د لارې او بندولو سره ، فرض کول چې تاسو غواړئ ټولې .txt فایلونه ومومئ چې تاسو یې په OME کور / سند / کې لرئ او په هر یو کې "زما کورنۍ" د "موږ" سره ځای په ځای کوئ ، تاسو کولی شئ د دې لاسته راوړلو لپاره + پریل کې ګډون وکړئ:
find $HOME/Documentos/ -name *.txt -exec perl -p -i -e "s[mi familia][nosotros]g" {} \;
یا د وائلډ کارډ کارول:
perl -p -i -e "s[mi familia][nosotros]g" $HOME/Documentos/*.txt
د دې دویم تغیر سره ستونزه دا ده چې دا به په فایلونو کې ځای په ځای نه کړي چې په فرعي فولډرونو کې دي 🙂
په هرصورت ، زه امید لرم چې تاسو دا په زړه پوري ومومئ. زما لپاره دا واقعیا ګټور دی ، زه دمخه کولی شم مستقیم له ټرمینل څخه متن بدل کړم ... عالي! 😀
21 نظرونه ، خپل پریږدئ
ښه ، زه فکر کوم چې دلته زموږ څخه ډیری د سیډ کمانډ پیژني ، کوم چې ورته هدف ترسره کوي ، دا خورا ښه ترسره کوي او کارول یې اسانه دي ...
ستاسو له نظره مننه ،
یوازې دوه توضیحات ، تاسو ولې وایاست چې سیډ غوره کوي؟ ایا د ډیری "عجیب" کرکټرونو سره کار کول واقعیا اسانه دي؟
ټولو ته سلام !!! ما کمانډ کارولی دی سل، او هغه میتود چې دلته د پریل سره تشریح شوی خورا اسانه دی. مننه KZKG ^ ګارا !!!.
د نظر لپاره مننه 🙂
ښه ، لږترلږه زما لپاره دا د منظم څرګندونو په پرتله ساده ښکاري ... چې د ډیری 'عجیب' کرکټرونو سره ، یو څه چې واقعیا پیچلي وي د پوهیدلو او زده کړې لپاره غیر محافظ ته ترسره کیدی شي.
دلته یو "زوړ" متل دی: "ما یوه ستونزه درلوده ، ما پریکړه وکړه چې منظمې څرګندونې وکاروم ... اوس زه د TWO ستونزې لرم" 😉
هاهاهاهاها !!!
منظم څرګندونې کولی شي زموږ ژوند په ټاکلي وخت کې خوندي کړي ... هو ، دا ډیر وخت نیسي ترڅو د دوی د کارولو څرنګوالي زده کړه وکړي او په هڅه کې مړ نشي.
که زه دا قوماندې کلونه مخکې پیژندلم ، خدای !! زما ژوند به څومره ساده وای 😀
روښانه! ښه سمبال شوي دوی خورا پیاوړي دي text د متن په لاسوهنه کولو کې هیڅ غوره نه دي. مګر ځینې وختونه ، لکه څنګه چې تاسو د پرل سره پدې قضیه کې وایاست ، تاسو اړتیا نلرئ لرې لاړشئ که چیرې یو ځای کافي وي.
زه به په هرصورت Python کارولی وي :)
مګر په تنده کې زه دا خورا ساده ګورم ... ایا زه کوم غلط کار کوم؟
sed -i "که / څه- I-to-to-change / new-to-put /" فایل-په-کې-چې ځای په ځای شي
هه هه ... او که زه غواړم د "http://my.blog.com/content/" د "http://my.blog.com/uploads/files/" لخوا بدل کړم already لا دمخه تاسو باید ځایونه او نور سره ځای په ځای کړئ. ، او دا پیچلي کیږي یا نه؟
دا اړینه نده چې د جلا کونکي په توګه وکاروئ. سره + وګوره
sed -i «s + http: //my.blog.com/content/+http: //my.blog.com/uploads/files/+» فایل
O_O ... WTF!
تاسو اوس زما لپاره د انتخابونو ټول کائنات خلاص کړی دی .. O_O
زه دا پوسټونه خوښوم چیرې چې موږ ټول یو څه زده کوو 🙂
زه هم نه پوهیږم
زه غوره ګ viم چې مستقیم vi ..
هغومره ساده:
:٪ s / موږ / زما کورنۍ / g
٪ -> بشپړ لاسوند
s -> لټون
g -> ټولې پېښې
سلامونه
Gracias!
زه نه پوهیدم چې دا څنګه د vi سره ترسره کړم
په خوښیو کې اضافه شوي!
Gracias!
دې ته یو نظر وګورئ که تاسو د rpl کمانډ یو څه لرئ
http://microbuffer.wordpress.com/2011/02/28/rpl-buscar-y-reemplazar-strings-en-linux-unix/
عالي ننوتل! که چیرې څوک علاقه ولري نو د لینکس سیډ کمانډ سره ورته وي: http://www.sysadmit.com/2015/07/linux-reemplazar-texto-en-archivos-con-sed.html
او څه پیښ شي که د فایل دننه هغه څه چې زه یې غواړم ځای په ځای یې کړم؟
مثال د هغه څه په ځای کولو کې چې متن وايي: »1 text د متن په واسطه:» 2 ″
امر به څنګه وي؟
هاله
ما غوښتل هغه تار بدل کړم چې یو یې @ په مینځ کې درلود او یوازې د مخه د متن لخوا د متن بدل شوی.
د بدلولو لپاره متن: ویوا ایل پیری
نوی متن: ویوا ما پیټرییاpercysalgado
ښودل شوي: زما د وطن اوږد ژوند وکړئ
ستاسو د مرستي نه مننه
"\" تاسو باید سلیش د مخه د کرکټرونو سره د @ ، # ، دوه ځله کارولو سره وکاروئ ، ترڅو دوی د متن په توګه تشریح شي.
او زه دا په وینډوز کې څنګه وکړم؟ ؟؟؟؟