આદેશોનો કેવી રીતે ઉપયોગ કરવો કે જે તમે પસંદ કરેલી બધી ફાઇલો સાથે એક સમયે ફક્ત એક ફાઇલ સાથે કાર્ય કરે છે

ઘણી વખત આપણે પીડીએફને ટેક્સ્ટમાં કન્વર્ટ કરવા, .ડોક ફાઇલોને એચટીએમએલ, વગેરેમાં રૂપાંતરિત કરવા માટે સ્ક્રિપ્ટ ચલાવવાની જરૂર છે; મુદ્દો એ છે કે આ આદેશો એક સમયે ફક્ત એક જ ફાઇલ સ્વીકારે છે અને તે અમને ખૂબ જ કંટાળાજનક છે જો આપણે ઘણી ફાઇલો પર એક જ કાર્ય કરવાની જરૂર હોય, ખાસ કરીને જ્યારે આપણે સ્ક્રિપ્ટ કરીએ.

નો ઉપયોગ કરીને આ સમસ્યાનું સમાધાન સૂચવુ છું ls, પરંતુ, grep, અવ્યવસ્થિત y sh. આપણે શું કરીશું દરેક પંક્તિમાં યોગ્ય આદેશ વાક્ય બનાવવું અને તેમને sh સાથે એક્ઝેક્યુટ કરવું, અને કેમ કે sh એક સમયે એક લીટી ચલાવશે, રેમ મેમરીનો વપરાશ વધશે નહીં, જે અન્ય પદ્ધતિઓથી અંડરપાવર્ડ મશીનોને પણ સ્થિર કરી શકે છે.

ચાલો જોઈએ કે આ આદેશ ક્રમ કેવી રીતે હાથ ધરવા.

1- આપણે જે કરવાનું છે તે પ્રથમ વસ્તુ તે ફાઇલોને દાખલ કરવાની છે કે જેના દ્વારા ઉપયોગ કરવામાં આવશે ls:

ls --directory /camino/a/carpeta/*.ext

2- તો પછી અવતરણો પસાર કરવા માટે અમને આ ફાઇલોની જરૂર પડશે «/ પાથ / ના જૂથમાં
ફાઈલો«

ls --directory /camino/a/carpeta/*.ext | sed 's/^/"/' | sed 's/$/"/'

3- હવે અવ્યવસ્થિત તે ડેટા પ્રાપ્ત કરવા માટે તૈયાર હશે.

ls --directory /camino/a/carpeta/*.ext | sed 's/^/"/' | sed 's/$/"/' | awk '{print $0}'

કારણ કે અવ્યવસ્થિત તેની પોતાની ભાષા છે આપણે આપણે અવતરણોને અલગ કરવાની જરૂર પડશે જે આપણે અન્ય કાર્યોમાં કોઈ ટેક્સ્ટને ટાંકવા માટે દેખાવા માંગીએ છીએ જે આપણે બેકસ્લેશનો ઉપયોગ કરવાની જરૂર પડશે. \ ચાલો જોઈએ કે કેટલાકને કેવી રીતે અલગ કરવું.
એક ભાવ અલગ કરો

\”

આઉટપુટમાં બksકસ્લેશ બતાવો (અમને ત્રણ બાર ટાઇપ કરવાની જરૂર પડશે)

\\\

કેટલીકવાર આપણને અલગ પાડનારની જરૂર પડે, ફક્ત બેકસ્લેશની અંદર દેખાતા ટેક્સ્ટ અથવા અવતરણો આઉટપુટમાં હશે:

'""'\"\'""'

4- ચાલો જોઈએ કે આદેશની મદદથી સૂચિબદ્ધ બધી ફાઇલોનું નામ કેવી રીતે લેવું mv ફક્ત પ્રત્યય દાખલ કરવા માટે. (હવે ફાઇલની સૂચિ બનાવવા માટે અમને "$ 0" સંયોજનનો ઉપયોગ કરવાની જરૂર પડશે જ્યારે પણ તેનો ઉપયોગ કરવાની જરૂર હોય)

ls --directory /camino/a/carpeta/*.ext | sed 's/^/"/' | sed 's/$/"/' | awk '{print "mv "$0" \"`dirname

"$ 0 ″" / લખાણ-કોઈપણ-aseબેસનામ "$ 0 ″" \ ""} '| એસ. એચ

પાછલા ક્રમમાં સંયોજન પ્રમાણે બતાવ્યા પ્રમાણે નોંધ ઉમેરવામાં આવી છે « | એસ. એચ »જે આ આદેશ દુભાષિયાને પાઈપલાઈન રીડાયરેક્ટ કરે છે

ચાલો સ્ક્રિપ્ટ બનાવવા માટે તૈયાર કેટલાક ઉદાહરણો જોઈએ.

ઉદાહરણો:

1- ટેક્સ્ટ ફાઇલોમાં સૂચિબદ્ધ બધા પીડીએફને રૂપાંતરિત કરો.

ls --directory “$@” | sed 's/^/"/' | sed 's/$/"/' | awk '{print "pdftotext",$0}' | sh

આ કિસ્સામાં આઉટપુટ ફાઇલ પસંદ કરવાની જરૂર નથી કારણ કે પીડીફ્ટોટેક્સ્ટ આપમેળે આધાર નામ અને .txt મુક્તિ સાથે ટેક્સ્ટ ફાઇલ પેદા કરે છે જો અને જો તમે એક ફાઇલ સાથે કામ કરી રહ્યા હોવ તો જ.

2- ચાલો આપણે ઈમેજ પર અસર લાગુ કરવા માંગીએ છીએ, પરંતુ મૂળમાં ફેરફાર કર્યા વિના, ચાલો તરંગ અસરવાળા ઉદાહરણ જોઈએ, જે વિન્ડોઝ XP લોગો માટે જાણીતું છે, કારણ કે તે effectsંચુંનીચું થતું અસરવાળું ધ્વજ છે (આ અસરની વધુ સારી પ્રશંસા કરવા માટે, તે તરીકે ઉપયોગ કરવાની ભલામણ કરવામાં આવે છે એક્સ્ટેંશન સાથેની પરિણામી છબી .png).

ls --directory “$@” | sed 's/^/"/' | sed 's/$/"/' | awk '{print FS="convert -wave 25x150

"$0"","\"\`dirname "$0"`/`basename "$0" | sed '"'"s/\\\\.[[:alnum:]]*$//"'"'`-wave.`basename "$0" |
rev | awk -F . \'"'"'\{print $1}\'"'"'\ | rev`'""'\"\'""' "}' | sh

નોંધ: આ ક્રમમાં ઘણા પાસ બનાવવામાં આવ્યા છે:

  • એક ફોલ્ડર મેળવવા માટે જ્યાં ફાઇલ ડિર્નામ સાથે સ્થિત છે
  • બીજું નામ મેળવવા માટે, પરંતુ કહ્યું ફાઇલના એક્સ્ટેંશનને દૂર કરવું
  • બીજી ફાઇલની મુક્તિ મેળવવા માટે.

3- ચાલો હવે જોઈએ કે નામની આગળ સંબંધિત સંખ્યાને મૂકીને ફાઇલોના જૂથનું નામ કેવી રીતે બનાવવું (આંકડાત્મક પ્રત્યય)

ls --directory “$@” | sed 's/^/"/' | sed 's/$/"/' | awk '{print FS="mv "$0" '""'\"\'""'`dirname
"$0"`/"FNR"-`basename "$0"`'""'\"\'""' "}' | sh

નંબર દાખલ કરવા માટે, "એફએનઆર" વિકલ્પ સાથે આંતરિક અવ્યવસ્થિત ભાષાનો ઉપયોગ કરવામાં આવ્યો હતો જે આઉટપુટની દરેક લાઇનને સૂચિબદ્ધ કરે છે, તેથી નંબર ટેક્સ્ટની પહેલાં અથવા પછી મૂકી શકાય છે.

ચાલો જોઈએ કે આંકડાકીય ઉપસર્ગ કેવી રીતે મૂકવો (અંતમાં એક નંબર મૂકો, પરંતુ મુક્તિ પહેલાં) આ વિકલ્પ ફક્ત ત્યારે જ માન્ય છે જો ફાઇલ પાસે.

ls --directory “$@” | sed 's/^/"/' | sed 's/$/"/' | awk '{print FS="mv "$0" \"`dirname
"$0"`/`basename "$0" | sed '\'s/\\\\.[[:alnum:]]*$//\''`-"FNR".`echo "$0" | rev | awk -F .
'""'\'\'""'{print $1}'""'\'\'""' | rev `\" " }' | sh

4- ચાલો એક ઉદાહરણ જોઈએ કે જ્યાં આપણે ડેટા દાખલ કરવો પડશે અથવા કાર્યોના જૂથને પસંદ કરવું પડશે, ઉદાહરણ તરીકે તે કેસ લેતા હોય છે જ્યાં આપણે સમાન પીડીએફ ફાઇલોથી પાસવર્ડ સુરક્ષાને દૂર કરીએ છીએ જેમાં સમાન પાસવર્ડ છે. (આ કિસ્સામાં આપણે ઝેનિટીનો ઉપયોગ સંવાદ બ asક્સ તરીકે કરીશું)

zenity --entry --hide-text --text "introduzca la clave de desbloqueo" > $HOME/.cat && ls
--directory “$@” | sed 's/^/"/' | sed 's/$/"/' | awk '{print FS="pdftk "$0" input_pw `cat
$HOME/.cat` output \"`dirname "$0"`/`basename "$0" .pdf`-unlock.pdf\" "}' | sh && rm
$HOME/.cat

ઝેનિટીના સંસ્કરણને આધારે પાસવર્ડ માટેનો વિકલ્પ ફક્ત પાસવર્ડ હોઈ શકે છે.

તમે જોયું તેમ, ઉદ્દેશ ફાઇલની બિલાડી બનાવવાનો છે કે જે ફક્ત એક જ વાર લાઇનની શરૂઆતમાં બનાવવામાં આવશે અને પછી રૂપાંતર પૂર્ણ થયા પછી કા beી નાખવામાં આવશે.

5- બીજી ઉપયોગિતા છે, જ્યારે આપણે .zip માં કોમ્પેક્ટેડ ઘણી ફાઇલોને ડિમ્પ્રેસ કરવાની જરૂર હોય છે

ls --directory “$@” | sed 's/^/"/' | sed 's/$/"/' | awk '{print "unzip -x "$0" "}' | sh

વધારાના અવતરણો અવકાશ દ્વારા અલગ પાડવી આવશ્યક છે જ્યાં વિકલ્પ "$ 0" નો ઉપયોગ થાય છે.
ઉદાહરણ
"unzip -x "$0" "

6- ચાલો એક પાસવર્ડ સાથે પીડીએફને સુરક્ષિત કરવા માટે એક ઉદાહરણ જોઈએ, વાંચનને મંજૂરી આપીશું પરંતુ છાપવાની કોપી અથવા અન્ય વિકલ્પો સામે સુરક્ષિત છે, (સંવાદ બ inક્સમાં સૂચિબદ્ધ વિકલ્પો તે હશે કે પીડીએફમાં મંજૂરી આપવામાં આવશે, જો તમે તેમાંના કોઈપણને પરવાનગી આપવા માંગતા ન હોવ, તો કંઈ પસંદ ન કરો).

zenity --separator " " --multiple --text "Seleccione los Opciones que quiere permitir" --column "Opciones" --list "Printing" "DegradedPrinting" "ModifyContents" "CopyContents" "ScreenReaders" "ModifyAnnotations" "AllFeatures" > $HOME/.cat && zenity --entry --hidetext --text "Teclee la contraseña de protección" > $HOME/.cat2 && ls --directory "$@" | sed 's/^/"/' | sed 's/$/"/' | awk '{print FS="echo \"pdftk \\\"`echo "$0"`\\\" output \\\"`dirname "$0"`/`basename "$0" .pdf`-locked.pdf\\\" allow `cat $HOME/.cat` owner_pw \"`cat $HOME/.cat2`\"\" | sh "}' | sh && rm $HOME/.cat $HOME/.cat2

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

આ વિકલ્પ ખૂબ જ ઉપયોગી થઈ શકે છે જો આપણે મેનકોડર સાથે વિડિઓઝના આખા જૂથને આમાં જોડાયા વિના તેને એકમાં ફેરવવા માંગતા હોઈએ; તમે આ માટે સ્ક્રિપ્ટ તૈયાર કરી શકો છો અને તેઓએ ફક્ત મૂકવું પડશે ls --directory %F | sed 's/^/"/' | sed 's/$/"/' | awk '{print "script-convertir-video "$0" "}' | sh && zenity --info --text "Todas las conversiones han terminado"

ફાઇન


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

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

*

*

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

  1.   રામિરો જણાવ્યું હતું કે

    તે ઘણું બધુ નહીં થાય, પરંતુ નિયમિત અભિવ્યક્તિઓ અથવા વાઇલ્ડકાર્ડનો ઉપયોગ કરીને આ બધું કરવું વધુ સરળ છે? હું સમજતો નથી કે આમાં શું તફાવત છે અને આનાથી તમારા જીવનને આટલું જટિલ બનાવે છે.

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

    સત્ય ટાડે છે, તમને લિનોક્સ આદેશોનું મહાન જ્ haveાન છે. ખૂબ જ ઉપયોગી!

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

      હા, હું જાણું છું કે અમે તેની સાથે આજુબાજુમાં ઘણું શીખીશું હહાહા.

  3.   હેક્સબorgર્ગ જણાવ્યું હતું કે

    મને લાગે છે કે આ ખૂબ સરળ છે:

    ls -d /path/to/folder/*.ext | ફાઇલ વાંચતી વખતે; કમાન્ડ કરો "$ ફાઇલ"; થઈ ગયું

    કોમંડને બદલે તમે જે ઇચ્છો તે મૂકી શકો છો અને ફાઇલોમાં ખાલી જગ્યાઓ હોય ત્યાં સુધી તમે $ ફાઇલ અવતરણો વચ્ચે મૂકશો ત્યાં સુધી તે કાર્ય કરે છે. તમારે તેના માટે સેડનો ઉપયોગ કરવાની જરૂર નથી અથવા આડઅસર સાથે આદેશો બનાવવાની જરૂર નથી. પણ આ ઓછી પ્રક્રિયાઓ શરૂ કરે છે.

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

      o:
      હું in માં (ls -d /path/a/folder/*.ext); કમાન્ડ કરો “$ i”; થઈ ગયું;

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

        તે સારું લાગે છે, પરંતુ જો ફાઇલ નામોમાં બ્લેન્ક્સ હોય તો તે કામ કરતું નથી. 🙂

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

          હકીકતમાં, હેક્સબર્ગ શા માટે આ વિકલ્પ સાથેની દરેક લાઇન માટે શરૂઆતમાં અને અંતમાં આઉટપુટ ટેક્સ્ટ ટાંકવામાં આવે છે:
          ls irectડિરેક્ટરી | સેડ 's / ^ / »/' | સેડ 's / $ / »/'

          હું સ્પષ્ટ કરું છું કે શોધનો ઉપયોગ પેટા ડિરેક્ટરીઝ શોધવા માટે થઈ શકે છે.

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

            પરંતુ મારી યુક્તિથી તમારે કરવાની જરૂર નથી. ls દરેક લાઇન પર એક સંપૂર્ણ ફાઇલનામો બહાર કા andે છે અને વાંચે છે એક વાક્ય બરાબર વાંચે છે અને ફાઇલ નામને ફાઇલ ચલમાં છોડી દે છે કે કેમ કે તેમાં ખાલી જગ્યાઓ છે કે નહીં. આદેશમાં તેનો ઉપયોગ કરતી વખતે તમારે ફક્ત $ ફાઇલની આસપાસ અવતરણો મૂકવાની જરૂર છે.

          2.    હ્યુગો જણાવ્યું હતું કે

            હું સંમત છું કે શોધવામાં તે ઓછું બોજારૂપ હોઈ શકે છે. ચાલો લેખમાંથી આ ઉદાહરણ લઈએ:

            ls --directory “$@” | sed 's/^/"/' | sed 's/$/"/' | awk '{print "pdftotext",$0}' | sh

            આ આ રીતે સારી રીતે સિદ્ધ થઈ શકે છે, અને તે કદાચ ઝડપથી ચાલશે:

            find . -type f -print0 | xargs -0 pdftotext

            તેણે કહ્યું, લેખ આવકાર્ય છે, કંઇક કરવાની વૈકલ્પિક રીતો વિશે જાણવું હંમેશાં સારું છે.

        2.    આંખ જણાવ્યું હતું કે

          જો તમે જોશો કે $ i અવતરણમાં છે. તે ગોરા સ્થાનને છટકીને બિનજરૂરી બનાવે છે.

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

            હા, પરંતુ $ () operatorપરેટર ક્યાંય અવતરણો મૂક્યા વિના ફાઇલના નામોને વિસ્તૃત કરે છે, તેથી ચલ હું પહેલેથી જ કટ ફાઇલોના નામ પકડે છે. ડિરેક્ટરીના ટર્મિનલમાં તેને અજમાવો જેમાં નામોની જગ્યાઓવાળી ફાઇલો હોય.

  4.   લીઓ જણાવ્યું હતું કે

    ખૂબ સારું, જટિલ, પણ ખૂબ રસપ્રદ.

  5.   હેલેના_રિયુ જણાવ્યું હતું કે

    આ આશ્ચર્યજનક છે, મહાન !!!!

  6.   MSX જણાવ્યું હતું કે

    ઉત્તમ, GNU / Linux ની પ્લાસ્ટિકિટીની કોઈ મર્યાદા નથી.

  7.   નતાલિયા જણાવ્યું હતું કે

    પ્રિય બ્લોગર,

    હું નતાલિયા છું, પેપરબ્લોગ પરના કમ્યુનિકેશન્સ મેનેજર. તેને શોધી કા After્યા પછી, હું તમને સંપર્ક કરી રહ્યો છું તમને પેપરબ્લોગ પ્રોજેક્ટ જાણવા માટે આમંત્રિત કરવા, http://es.paperblog.com, નવી નાગરિક પત્રકારત્વ સેવા. પેપરબ્લોગ એ ડિજિટલ પ્લેટફોર્મ છે જે બ્લ magazineગ મેગેઝિન તરીકે રજિસ્ટર્ડ બ્લોગ્સના શ્રેષ્ઠ લેખો પ્રકાશિત કરે છે.

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

    હું આશા રાખું છું કે તમે જાન્યુઆરી 2010 માં આવા ઉત્સાહથી શરૂ કરેલા પ્રોજેક્ટથી તમે પ્રેરિત છો. એક નજર જુઓ અને વધુ વિગતો માટે મને લખવા માટે અચકાશો નહીં.

    સૌહાર્દપૂર્ણ અને પ્રેમાળ શુભેચ્છા પ્રાપ્ત કરો,
    નતાલિયા