ફક્ત એક આદેશ સાથે ફાઇલોની અંદર ટેક્સ્ટને બદલો: પર્લ

અમુક પ્રસંગોએ આપણે ફાઇલમાં ટેક્સ્ટને બદલવા માંગીએ છીએ, ઉદાહરણ તરીકે, માં બદલો Document.txt "મારું કુટુંબ" "આપણા માટે" કહે છે તે બધું. આ હાંસલ કરવા માટે આપણે આપણું પસંદીદા ટેક્સ્ટ એડિટર (કેટ, ગેડિટ, સબલાઈમ ટેક્સ્ટ, વગેરે) નો ઉપયોગ કરી શકીએ છીએ, પરંતુ તે સમાન પરિણામ મેળવવા માટે અન્ય પ્રકારો, વેરિયન્ટ્સ જાણવું હંમેશાં સારું છે 🙂

તે સાથે થાય છે નિયમિત અભિવ્યક્તિઓ આ પ્રાપ્ત કરી શકાય છે, સેડ આદેશ ફક્ત ભવ્ય છે, તેમાં અનંત પ્રકારો અને વિકલ્પો છે પરંતુ ... જેઓ ફક્ત આમાંથી ટેક્સ્ટને બદલવા માંગો છો શક્ય ઓછામાં ઓછી જટિલ રીત, તેમના માટે તે છે કે હું આ ખૂબ સરળ પ્રકાર લાવીશ:

ઉદાહરણને અનુસરીને, અમારી પાસે ફાઇલ છે Document.txt માં સ્થિત થયેલ છે 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

આદેશ થોડો જટિલ લાગે છે, ચાલો તેને થોડોક તોડીએ અને તેને થોડી વધુ સરળ રીતે સમજાવીએ 😉

  • પર્લ : આપણે શું ઉપયોગ કરીશું, પર્લ
  • -પી.આઈ. : પી, કેવી રીતે π (આશરે મૂલ્ય 3.14)
  • -e : ઇ તેની કલ્પના exec ઇ ચલાવવા માટે » ^ - ^
  • પછી અવતરણોમાં » અમે એક સાથે ખોલો s અને અમે એક સાથે બંધ જી: "એસએજી" … પ્રારંભ માટે એસ અને ગેમ ઓવર the ની કલ્પના
  • વચ્ચે ફેરવો sg આપણે કૌંસના બે સેટ મૂકવા જોઈએ: [] y [], તે રીતે હોવા: "એસ [] [] જી"
  • જેમ જેમ મેં ઉપર કહ્યું તેમ પ્રથમ કૌંસની અંદર, જે લખાણ આપણે દૂર કરવા અને નવા સાથે બદલવા માંગીએ છીએ તે જશે, જ્યારે કૌંસના બીજા સેટમાં નવું ટેક્સ્ટ આગળ વધશે, ઉદાહરણ પ્રમાણે: "એસ [મારા કુટુંબ] [અમે] જી"

સરળ નથી?

આદેશ માટે જે જરૂરી છે તેના કરતા ખુલાસો ખરેખર વધુ વ્યાપક છે, તે સમજવું એકદમ સરળ છે 🙂

પર્લ ઘણું બધું છે, માત્ર ટેક્સ્ટને બદલવાની રીત કરતાં, તે એક આખી ભાષા છે 😉

જો તમે તેના વિશે વધુ જાણવા માંગતા હો, તો પેકેજ ઇન્સ્ટોલ કરો પર્લ-ડોક અને તે શું પરવાનગી આપે છે તેના પર એક નજર નાખો, તે ફક્ત એક અલગ બ્રહ્માંડ છે.

માર્ગ દ્વારા અને બંધ કરવાથી, તમે $ HOM / દસ્તાવેજો / માં તમારી પાસેની બધી .txt ફાઇલો શોધવા માગો છો અને દરેક એકમાં "મારા કુટુંબ" ને "અમારા" સાથે બદલો છો, એમ માનીને, તમે આ પ્રાપ્ત કરવા માટે + શોધ + પર્લ જોડાઈ શકો છો:

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

આ બીજા પ્રકારમાં સમસ્યા એ છે કે તે ફાઇલમાં બદલાશે નહીં કે જે સબફોલ્ડરોમાં છે

તો પણ, હું આશા કરું છું કે તમને તે રસપ્રદ લાગ્યું છે. મારા માટે તે ખરેખર ઉપયોગી રહ્યું છે, હું પહેલાથી જ ટર્મિનલમાંથી સીધા જ ટેક્સ્ટને બદલી શકું છું ... મહાન! 😀


તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.

  1.   બૂમ જણાવ્યું હતું કે

    ઠીક છે, મને લાગે છે કે આપણામાંના ઘણા સેડ કમાન્ડને જાણે છે, જે સમાન હેતુ માટે કામ કરે છે, તે તે વધુ સારું કરે છે અને તેનો ઉપયોગ કરવો વધુ સરળ છે ...

    1.    કેઝેડકેજી ^ ગારા જણાવ્યું હતું કે

      તમારી ટિપ્પણી બદલ આભાર,
      ફક્ત બે વિગતો, તમે કેમ કહો છો કે સેડ તેને વધુ સારું બનાવે છે? શું આટલા બધા 'વિચિત્ર' પાત્રોનો ઉપયોગ કરવો ખરેખર સરળ છે?

  2.   ફેડરિકો એ. વાલ્ડેસ ટૂજagueગ જણાવ્યું હતું કે

    સૌને શુભેચ્છાઓ !!!. મેં આદેશનો ઉપયોગ કર્યો છે પરંતુ, અને પર્લ સાથે અહીં વર્ણવેલ પદ્ધતિ સરળ છે. આભાર KZKG ^ Gaara !!!.

    1.    કેઝેડકેજી ^ ગારા જણાવ્યું હતું કે

      ટિપ્પણી માટે આભાર 🙂
      સારું, ઓછામાં ઓછું મને લાગે છે કે આ નિયમિત અભિવ્યક્તિઓ કરતાં સરળ છે ... ઘણાં 'વિચિત્ર' પાત્રો સાથે, સમજવા અને શીખવા માટે ખરેખર કંઇક જટિલ વસ્તુ બિન-સમજશકિતને કરી શકાય છે.

      1.    ગિસકાર્ડ જણાવ્યું હતું કે

        ત્યાં એક «જૂની» કહેવત છે: «મને એક સમસ્યા હતી, મેં નિયમિત અભિવ્યક્તિઓનો ઉપયોગ કરવાનું નક્કી કર્યું ... હવે મને બે સમસ્યાઓ છે» 😉

        1.    કેઝેડકેજી ^ ગારા જણાવ્યું હતું કે

          હાહાહાહાહહહા !!!
          નિયમિત અભિવ્યક્તિઓ કોઈ ચોક્કસ બિંદુએ આપણા જીવનને બચાવી શકે છે ... હા, તેનો ઉપયોગ કેવી રીતે કરવો અને પ્રયત્નશીલ રીતે મરી ન જવું તે શીખવામાં લાંબો સમય લાગે છે.

          જો હું વર્ષો પહેલા આ આદેશ જાણતો હોત, ભગવાન! મારું જીવન કેટલું સરળ હોત 😀

          1.    ગિસકાર્ડ જણાવ્યું હતું કે

            ચોખ્ખુ! સારી રીતે હેન્ડલ કરેલ તેઓ ખૂબ શક્તિશાળી છે text ટેક્સ્ટની ચાલાકી માટે બીજું કંઈ સારું નથી. પરંતુ કેટલીકવાર, જેમ કે તમે પર્લ સાથે આ કિસ્સામાં કહો છો, જો બદલો પૂરતો છે, તો તમારે તે દૂર જવું પડશે નહીં.
            મેં તો પણ પાયથોનનો ઉપયોગ કર્યો હોત :)

    2.    ધૂંટર જણાવ્યું હતું કે

      પરંતુ તરસમાં હું તેને સરળ પણ જોઉં છું ... શું હું કંઈક ખોટું કરી રહ્યો છું?

      સેડ -i "જો / શું-મારે-બદલાવ / નવી-થી-મૂકો /" ફાઇલ-ઇન-જે-બદલો-બદલો

      1.    કેઝેડકેજી ^ ગારા જણાવ્યું હતું કે

        હેં હે ... અને જો હું "http://my.blog.com/content/" ને "http://my.blog.com/uploads/files/" replace ... સાથે બદલવા માંગું છું તો પહેલાથી જ તમારી પાસે મૂકવા માટે - જગ્યાઓ અને અન્ય લોકો સાથે, અને તે જટિલ બને છે કે નહીં?

        1.    ધૂંટર જણાવ્યું હતું કે

          વિભાજક તરીકે / વાપરવું ફરજિયાત નથી. સાથે જુઓ

          sed -i «s + http: //my.blog.com/content/+http: //my.blog.com/uploads/files/+» ફાઇલ

          1.    કેઝેડકેજી ^ ગારા જણાવ્યું હતું કે

            O_O… WTF!
            તમે હવે મારા માટે વિકલ્પોનું એક સંપૂર્ણ બ્રહ્માંડ ખોલ્યું છે .. ઓ _ ઓ

          2.    ગિસકાર્ડ જણાવ્યું હતું કે

            મને આ પોસ્ટ્સ ગમે છે જ્યાં આપણે બધા કંઇક શીખીએ 🙂
            મને તે પણ ખબર નહોતી.

  3.   RAW- મૂળભૂત જણાવ્યું હતું કે

    હું સીધા vi નો ઉપયોગ કરવાનું પસંદ કરું છું ..

    જેટલું સરળ:
    :% s / us / મારું કુટુંબ / જી

    % -> સંપૂર્ણ દસ્તાવેજ
    s -> શોધ
    g -> બધા બનાવો

    શુભેચ્છાઓ

    1.    કેઝેડકેજી ^ ગારા જણાવ્યું હતું કે

      ગ્રાસિઅસ!
      મને vi સાથે તે કેવી રીતે કરવું તે ખબર નથી

  4.   st0rmt4il જણાવ્યું હતું કે

    મનપસંદમાં ઉમેર્યું!

    ગ્રાસિઅસ!

  5.   એન 3 સ્ટોર્મ જણાવ્યું હતું કે

    જો તમારી પાસે થોડીક આરપીએલ આદેશ છે, તો તેને જુઓ

    http://microbuffer.wordpress.com/2011/02/28/rpl-buscar-y-reemplazar-strings-en-linux-unix/

  6.   દુરંગ જણાવ્યું હતું કે

    સરસ એન્ટ્રી! જો કોઈને રુચિ હોય તો, લિનક્સ સેડ આદેશ સાથે સમાન: http://www.sysadmit.com/2015/07/linux-reemplazar-texto-en-archivos-con-sed.html

    1.    શંકા જણાવ્યું હતું કે

      અને શું જો ફાઈલની અંદર હું બદલાવવા માંગું છું તો અવતરણો છે?
      ટેક્સ્ટ શું કહે છે તેને બદલો ઉદાહરણ: text 1 text ટેક્સ્ટ દ્વારા: »2 ″
      આદેશ કેવી હશે?

  7.   પર્સી સલગાડો જણાવ્યું હતું કે

    હેલો

    હું મધ્યમાં @ @ ધરાવતા શબ્દમાળાને બદલવા માંગતો હતો અને ફક્ત સાઇન કરતા પહેલા જ ટેક્સ્ટને બદલી શકતો હતો.

    બદલવા માટેનો ટેક્સ્ટ: પેરુ લાઇવ લાઇવ
    નવું ટેક્સ્ટ: વિવા મી પટ્રિયા @ કોપાયસાલેગાડો
    બતાવ્યું: મારા વતન લાંબા રહો

    તમારી સહાય બદલ આભાર

  8.   અનામી જણાવ્યું હતું કે

    "\" તમારે ડબલ ઉપયોગ @, # સાથેના અક્ષરો પહેલાં સ્લેશનો ઉપયોગ કરવો જ જોઇએ, જેથી તેઓ લખાણ તરીકે અર્થઘટન કરે.

  9.   ગાબા જણાવ્યું હતું કે

    અને હું તેને વિંડોઝમાં કેવી રીતે કરી શકું ????