మీరు ఎంచుకున్న అన్ని ఫైల్‌లతో ఒకేసారి ఒక ఫైల్‌తో మాత్రమే పనిచేసే ఆదేశాలను ఎలా ఉపయోగించాలి

పిడిఎఫ్‌ను టెక్స్ట్‌గా మార్చడానికి, .doc ఫైల్‌లను html గా మార్చడానికి మేము చాలాసార్లు స్క్రిప్ట్‌ను అమలు చేయాలి; విషయం ఏమిటంటే, ఈ ఆదేశాలు ఒకేసారి ఒక ఫైల్‌ను మాత్రమే అంగీకరిస్తాయి మరియు అదే పనిని అనేక ఫైళ్ళలో చేయవలసి వస్తే చాలా శ్రమతో కూడుకున్నది, ప్రత్యేకించి మనం స్క్రిప్ట్ చేసేటప్పుడు.

ఈ సమస్యకు పరిష్కారాన్ని నేను ప్రతిపాదిస్తున్నాను 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}'

ఎందుకంటే అవాక్ దాని స్వంత భాష ఉంది, మనం బ్యాక్స్‌లాష్‌ని ఉపయోగించాల్సిన ఇతర ఫంక్షన్ల మధ్య ఒక టెక్స్ట్‌ని కోట్ చేయడానికి కనిపించే కోట్లను వేరు చేయాలి. \ కొన్నింటిని ఎలా వేరు చేయాలో చూద్దాం.
కోట్ వేరు

\”

అవుట్పుట్లో బాక్ స్లాష్ చూపించు (మేము మూడు బార్లను టైప్ చేయాలి)

\\\

కొన్నిసార్లు మనకు ఐసోలేటింగ్ సెపరేటర్ అవసరం, రెండు బ్యాక్‌స్లాష్‌లలో కనిపించే టెక్స్ట్ లేదా కోట్స్ మాత్రమే అవుట్‌పుట్‌లో అవుట్‌పుట్ అవుతాయి:

'""'\"\'""'

4- కమాండ్ ఉపయోగించి జాబితా చేయబడిన అన్ని ఫైళ్ళ పేరును ఎలా మార్చాలో చూద్దాం mv కేవలం ప్రత్యయం నమోదు చేయడానికి. (ఇప్పుడు ఫైల్‌ను జాబితా చేయడానికి మనం "$ 0" కలయికను ఉపయోగించాల్సిన అవసరం వచ్చినప్పుడు ఉపయోగించాలి)

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

"$ 0 ″" / టెక్స్ట్-ఏదైనా-`బేస్‌నేమ్" $ 0 ″ "\" "} '| sh

మునుపటి శ్రేణి కలయికలో చూపిన విధంగా గమనిక చివరిలో జోడించబడుతుంది « | sh Command ఈ కమాండ్ వ్యాఖ్యాతకు పైప్‌లైన్‌ను మళ్ళిస్తుంది

స్క్రిప్ట్‌ని సృష్టించడానికి సిద్ధం చేసిన కొన్ని ఉదాహరణలు చూద్దాం.

ఉదాహరణలు:

1- టెక్స్ట్ ఫైళ్ళలో జాబితా చేయబడిన అన్ని పిడిఎఫ్లను మార్చండి.

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

ఈ సందర్భంలో pdftotext స్వయంచాలకంగా బేస్ పేరు మరియు .txt మినహాయింపుతో వచన ఫైల్‌ను ఉత్పత్తి చేస్తుంది కాబట్టి మీరు ఒకే ఫైల్‌తో పనిచేస్తుంటే మాత్రమే అవుట్పుట్ ఫైల్‌ను ఎంచుకోవడం అవసరం లేదు.

2- మేము ఒక చిత్రానికి ఒక ప్రభావాన్ని వర్తింపజేయాలనుకుంటున్నాము, కాని అసలైనదాన్ని సవరించకుండా, విండోస్ XP లోగోకు బాగా తెలిసిన వేవ్ ఎఫెక్ట్‌తో ఒక ఉదాహరణ చూద్దాం, ఎందుకంటే ఇది ఉంగరాల ప్రభావాలతో కూడిన జెండా (ఈ ప్రభావాన్ని బాగా అభినందించడానికి, ఇది .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

సంఖ్యను నమోదు చేయడానికి, ప్రతి పంక్తి ఉత్పత్తిని జాబితా చేసే "FNR" ఎంపికతో అంతర్గత ఇబ్బంది భాష ఉపయోగించబడింది, కాబట్టి సంఖ్యను టెక్స్ట్ ముందు లేదా తరువాత ఉంచవచ్చు.

సంఖ్యా ఉపసర్గను ఎలా ఉంచాలో చూద్దాం (చివర ఒక సంఖ్యను ఉంచండి, కానీ మినహాయింపుకు ముందు) ఫైల్‌లో ఉంటే మాత్రమే ఈ ఎంపిక చెల్లుతుంది.

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- ఒకే పాస్వర్డ్ ఉన్న అనేక పిడిఎఫ్ ఫైళ్ళ నుండి పాస్వర్డ్ రక్షణను తొలగించే ఉదాహరణగా మనం డేటాను ఎంటర్ చేయవలసిన లేదా ఫంక్షన్ల సమూహాన్ని ఎన్నుకోవలసిన ఉదాహరణను చూద్దాం. (ఈ సందర్భంలో మనం డైలాగ్ బాక్స్‌గా సున్నితత్వాన్ని ఉపయోగిస్తాము)

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

జెనిటీ వెర్షన్‌ను బట్టి పాస్‌వర్డ్ ఎంపిక కేవలం పాస్‌వర్డ్ కావచ్చు.

మీరు చూసినట్లుగా, పంక్తి ప్రారంభంలో సృష్టించబడిన ఫైల్ యొక్క పిల్లిని ఒక్కసారి మాత్రమే తయారు చేయడం మరియు మార్పిడి పూర్తయిన తర్వాత తొలగించబడుతుంది.

5- మరొక ప్రయోజనం ఏమిటంటే, .zip లో కుదించబడిన అనేక ఫైళ్ళను అన్జిప్ చేయవలసి వచ్చినప్పుడు

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

అదనపు కోట్లను "$ 0" ఎంపికను ఉపయోగించిన స్థలం ద్వారా వేరు చేయాలి.
ఉదాహరణకు
"unzip -x "$0" "

6- పాస్‌వర్డ్‌తో పిడిఎఫ్‌ను రక్షించడానికి ఒక ఉదాహరణ చూద్దాం, చదవడానికి అనుమతిస్తుంది కాని ప్రింటింగ్ కాపీ లేదా ఇతర ఎంపికల నుండి రక్షించబడుతుంది, (డైలాగ్ బాక్స్‌లో జాబితా చేయబడిన ఎంపికలు పిడిఎఫ్‌లో అనుమతించబడతాయి, మీరు ఏదైనా అనుమతించకూడదనుకుంటే వాటిలో, ఏదీ ఎంచుకోవద్దు).

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"

END


వ్యాసం యొక్క కంటెంట్ మా సూత్రాలకు కట్టుబడి ఉంటుంది సంపాదకీయ నీతి. లోపం నివేదించడానికి క్లిక్ చేయండి ఇక్కడ.

15 వ్యాఖ్యలు, మీదే వదిలేయండి

మీ వ్యాఖ్యను ఇవ్వండి

మీ ఇమెయిల్ చిరునామా ప్రచురితమైన కాదు. లు గుర్తించబడతాయి గుర్తించబడతాయి *

*

*

  1. డేటాకు బాధ్యత: మిగ్యుల్ ఏంజెల్ గాటన్
  2. డేటా యొక్క ఉద్దేశ్యం: కంట్రోల్ స్పామ్, వ్యాఖ్య నిర్వహణ.
  3. చట్టబద్ధత: మీ సమ్మతి
  4. డేటా యొక్క కమ్యూనికేషన్: డేటా చట్టపరమైన బాధ్యత ద్వారా తప్ప మూడవ పార్టీలకు తెలియజేయబడదు.
  5. డేటా నిల్వ: ఆక్సెంటస్ నెట్‌వర్క్స్ (EU) హోస్ట్ చేసిన డేటాబేస్
  6. హక్కులు: ఎప్పుడైనా మీరు మీ సమాచారాన్ని పరిమితం చేయవచ్చు, తిరిగి పొందవచ్చు మరియు తొలగించవచ్చు.

  1.   Ramiro అతను చెప్పాడు

    ఇది చాలా ఎక్కువ కాదా, అయితే రెగ్యులర్ ఎక్స్‌ప్రెషన్స్ లేదా వైల్డ్‌కార్డ్‌లను ఉపయోగించి ఇవన్నీ చేయడం చాలా సులభం కాదా? దాని మధ్య తేడా ఏమిటో నాకు అర్థం కాలేదు మరియు దీనితో మీ జీవితం చాలా క్లిష్టంగా ఉంటుంది.

  2.   క్రోటో అతను చెప్పాడు

    నిజం చెప్పబడింది, మీకు లైనక్స్ ఆదేశాల గురించి గొప్ప జ్ఞానం ఉంది. చాలా ఉపయోగకరం!

    1.    KZKG ^ గారా అతను చెప్పాడు

      అవును, నేను అతనితో ఇక్కడ చాలా నేర్చుకుంటానని నాకు తెలుసు.

  3.   హెక్స్బోర్గ్ అతను చెప్పాడు

    ఇది చాలా సులభం అని నేను అనుకుంటున్నాను:

    ls -d /path/to/folder/*.ext | ఫైల్ చదివేటప్పుడు; కమాండ్ "$ ఫైల్" చేయండి; పూర్తి

    కమాండ్‌కు బదులుగా మీరు మీకు కావలసినదాన్ని ఉంచవచ్చు మరియు మీరు కోట్స్ మధ్య $ ఫైల్‌ను ఉంచినంత వరకు ఫైల్‌లు ఖాళీ స్థలాలను కలిగి ఉన్నప్పటికీ ఇది పనిచేస్తుంది. మీరు దాని కోసం sed ను ఉపయోగించాల్సిన అవసరం లేదు లేదా awk తో ఆదేశాలను రూపొందించండి. ఇది తక్కువ ప్రక్రియలను ప్రారంభిస్తుంది.

    1.    Ankh అతను చెప్పాడు

      o:
      నేను in లో (ls -d /path/a/folder/*.ext); “$ i” కమాండ్ చేయండి; పూర్తి;

      1.    హెక్స్బోర్గ్ అతను చెప్పాడు

        ఇది బాగుంది, కానీ ఫైల్ పేర్లలో ఖాళీలు ఉంటే అది పనిచేయదు. 🙂

        1.    తాహెడ్ అతను చెప్పాడు

          వాస్తవానికి, హెక్స్‌బోర్గ్ అంటే ఈ ఎంపికతో ప్రతి పంక్తికి అవుట్పుట్ టెక్స్ట్ ప్రారంభంలో మరియు చివరిలో కోట్ చేయబడింది:
          ls –డైరెక్టరీ | sed 's / ^ / »/' | sed 's / $ / »/'

          ఉప డైరెక్టరీలను శోధించడానికి ఫైండ్ ఉపయోగించవచ్చని నేను స్పష్టం చేస్తున్నాను.

          1.    హెక్స్బోర్గ్ అతను చెప్పాడు

            కానీ నా ట్రిక్ తో మీరు చేయనవసరం లేదు. ls ప్రతి పంక్తిలో పూర్తి ఫైల్ పేర్లను ఒకటి తీసివేసి, పంక్తిని పంక్తిగా చదివి, ఫైల్ ఖాళీను ఖాళీ వేరియబుల్స్ ఉన్నాయో లేదో ఫైల్ వేరియబుల్‌లో వదిలివేస్తుంది. కమాండ్‌లో ఉపయోగిస్తున్నప్పుడు మీరు $ ఫైల్ చుట్టూ కోట్స్ ఉంచాలి.

          2.    హ్యూగో అతను చెప్పాడు

            కనుగొనడంలో ఇది తక్కువ గజిబిజిగా ఉంటుందని నేను అంగీకరిస్తున్నాను. వ్యాసం నుండి ఈ ఉదాహరణ తీసుకుందాం:

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

            ఇదే విధంగా బాగా సాధించవచ్చు మరియు ఇది వేగంగా నడుస్తుంది:

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

            వ్యాసం స్వాగతించబడింది, ఏదైనా చేసే ప్రత్యామ్నాయ మార్గాల గురించి తెలుసుకోవడం ఎల్లప్పుడూ మంచిది.

        2.    Ankh అతను చెప్పాడు

          మీరు గమనించినట్లయితే $ i కోట్స్‌లో ఉంది. ఇది వైట్‌స్పేస్ నుండి తప్పించుకోవడం అనవసరంగా చేస్తుంది.

          1.    హెక్స్బోర్గ్ అతను చెప్పాడు

            అవును, కానీ $ () ఆపరేటర్ ఎక్కడైనా కోట్స్ పెట్టకుండా ఫైల్ పేర్లను విస్తరిస్తుంది, కాబట్టి వేరియబుల్ నేను ఇప్పటికే కట్ ఫైళ్ళ పేర్లను పట్టుకుంటాను. పేర్లలో ఖాళీలతో ఫైల్‌లను కలిగి ఉన్న డైరెక్టరీలోని టెర్మినల్‌లో దీన్ని ప్రయత్నించండి.

  4.   లియో అతను చెప్పాడు

    చాలా మంచి, సంక్లిష్టమైన, కానీ చాలా ఆసక్తికరమైనది.

  5.   హెలెనా_రియు అతను చెప్పాడు

    ఇది అద్భుతమైనది, గొప్పది !!!!

  6.   MSX అతను చెప్పాడు

    అద్భుతమైనది, గ్నూ / లైనక్స్ యొక్క ప్లాస్టిసిటీకి పరిమితులు లేవు.

  7.   నటాలియా అతను చెప్పాడు

    ప్రియమైన బ్లాగర్,

    నేను నటాలియా, పేపర్‌బ్లాగ్‌లో కమ్యూనికేషన్స్ మేనేజర్. దానిని కనుగొన్న తరువాత, పేపర్‌బ్లాగ్ ప్రాజెక్ట్ గురించి తెలుసుకోవటానికి మిమ్మల్ని ఆహ్వానించడానికి నేను మీతో సంప్రదిస్తున్నాను, http://es.paperblog.com, కొత్త పౌర జర్నలిజం సేవ. పేపర్‌బ్లాగ్ ఒక డిజిటల్ ప్లాట్‌ఫాం, ఇది బ్లాగ్ మ్యాగజైన్ వలె, నమోదిత బ్లాగుల యొక్క ఉత్తమ కథనాలను ప్రచురిస్తుంది.

    భావన మీకు ఆసక్తి ఉంటే, మీరు పాల్గొనడానికి మీ బ్లాగును మాత్రమే ప్రతిపాదించాలి. వ్యాసాలు మీ పేరు / మారుపేరు మరియు ప్రొఫైల్ ఫైల్‌తో పాటు, అసలు బ్లాగుకు అనేక లింక్‌లతో పాటు, ప్రారంభంలో మరియు చివరిలో ఉంటాయి. కవర్ పేజీలో కనిపించడానికి చాలా ఆసక్తికరమైన వాటిని బృందం ఎంచుకోవచ్చు మరియు మిమ్మల్ని ఆనాటి రచయితగా ఎంచుకోవచ్చు.

    జనవరి 2010 లో మేము అలాంటి ఉత్సాహంతో ప్రారంభించిన ప్రాజెక్ట్ ద్వారా మీరు ప్రేరేపించబడ్డారని నేను ఆశిస్తున్నాను. పరిశీలించండి మరియు మరిన్ని వివరాల కోసం నాకు వ్రాయడానికి వెనుకాడరు.

    స్నేహపూర్వక మరియు ఆప్యాయమైన గ్రీటింగ్‌ను స్వీకరించండి,
    నటాలియా