बैच के नामकरण ऑपरेशन में, मैं फ़ाइल नाम में नंबर कैसे ले जाऊं?


13

मैं यह पता लगाने की कोशिश कर रहा हूं कि पिछले कुछ घंटों से फ़ाइलों का नाम कैसे बदला जाए।

मेरे पास 2000 फाइलें हैं जो इस प्रकार हैं:

file.1.pdb
file.2.pdb
file.3.pdb

मैं इन फ़ाइलों को कुछ इस तरह बदलना चाहता हूं:

file.pdb.1
file.pdb.2
file.pdb.3

क्या आपका मतलब मार नहीं था ?
एज़ुला

4
@avazula कृपया इस लेख को न पढ़ें: en.wikipedia.org/wiki/Batch_renaming
अली रज़मदिदे

@PerlDuck हाँ;)
अली राजमादिदे


2
हे करीबी मतदाता - क्या आप सभी वास्तव में सोचते हैं कि हमें केवल [बैच-नाम] टैग में एक प्रश्न की आवश्यकता है? क्या लिंक्ड पोस्ट में कुछ भी है जो वास्तव में इस प्रश्न में कार्य के साथ मदद करता है, केवल उपयोग करने के विचार को छोड़कर rename? यह मुझे प्रतीत होता है कि यदि किसी बैच के नाम बदलने वाले प्रश्न में विशिष्ट विवरण हैं, तो हमें बस उसे विशिष्ट उत्तर प्रदान करना चाहिए ।
ज़ना

जवाबों:


15

यदि आपने renameस्थापित किया है, तो आप उपयोग कर सकते हैं

rename -n 's/(\.\d+)\.pdb$/.pdb$1/' *.pdb   # just watch what WOULD happen
rename    's/(\.\d+)\.pdb$/.pdb$1/' *.pdb   # actually rename the files

कमांड के renameमाध्यम से स्थापित किया जा सकता है

sudo apt install rename

11

के माध्यम से mmv(वाइल्डकार्ड पैटर्न द्वारा कई फ़ाइलों का नाम बदलें) यह आसान है:

mmv '*.*.*' '#1.#3.#2' *.pdb

या zmvका zshखोल; यह एक मॉड्यूल है जो नाम बदलने की अनुमति देता है; देखें ZMV- उदाहरण :

zmv -w '*.*.*' '$1.$3.$2' *.pdb

3
दोनों mmvऔर zmvबल्कि मेरे लिए विदेशी लगते हैं। क्या आप थोड़ा विस्तार करते हैं कि वे क्या हैं और वे क्या करते हैं?
PerlDuck

2
मैंने उनके मैनपेज और उदाहरणों के लिए एक लिंक जोड़ा।
α atsнιη

mmvबहुत अच्छा है। renameनाम के मामले में कम लचीले होने के बावजूद, इस तरह के नामकरण के लिए बेहतर-अनुकूल लगता है ।
JAB

11

पर्ल का उपयोग करना rename:

rename -n 's/(\.\d+)(\.pdb)/$2$1/' *.pdb

त्वरित स्पष्टीकरण:

  • *.pdbउन सभी फ़ाइलों का मिलान करें, जिनके साथ अंत होता है .pdb। (शैल द्वारा किया गया)
  • (\.\d+)एक शाब्दिक बिंदु से मिलान करें, फिर एक या अधिक दशमलव अंक। Parens एक मिलान समूह बनाते हैं।
  • $2$1 पहले और दूसरे मैच समूहों को उलट दें।
  • -nकोई क्रिया नहीं (अनुकरण)। यदि आउटपुट अच्छा लगता है, तो इस ध्वज के बिना फिर से कमांड चलाएँ।

1
जबरदस्त हंसी। उसी ने सोचा। आप 48 सेकंड तेज थे।
पर्लडक

1
@PerlDuck लोल, हाँ, वही सोचा। जवाब बहुत अच्छी तरह से पूरक हैं: आप स्थापना को कवर करते हैं, मैं सिंटैक्स को कवर करता हूं।
वेजेंड्रिया

7

आप इस स्क्रिप्ट का उपयोग कर सकते हैं:

for i in `seq 1 2000`; do
mv file.$i.pdb file.pdb.$i
done

या यह कॉपी-पेस्ट फ्रेंडली कमांड:

for i in `seq 1 2000`; do mv file.$i.pdb file.pdb.$i; done

ऊपर दिए गए आदेशों के उपयोग के लिए, सभी 2000 फ़ाइलों को एक फ़ोल्डर में रखें और फिर उस निर्देशिका में टर्मिनल खोलें, फिर उसमें कमांड के ऊपर चलाएं।


5

हाल ही में नॉटिलस, डिफॉल्ट फाइल मैनेजर को एक बैच का नाम बदलकर डायलॉग मिला। यह अभी तक इतना शक्तिशाली नहीं है कि आप क्या चाहते हैं। लेकिन सौभाग्य से थुनर है, एक वैकल्पिक फ़ाइल प्रबंधक जिसे स्थापित किया जा सकता है। Thunars नाम बदलने के संवाद के साथ आप वह कर सकते हैं जो आप GUI का उपयोग करना चाहते हैं।

पहले थंडर स्थापित करें:

sudo apt install thunar

थूनर शुरू करें, उस डायरेक्टरी में जाएं, जिसमें आपकी फाइलें हैं। फिर उनमें से सभी का चयन करें। प्रेस करें F2

खुलने वाले संवाद में, फिर से, सभी फ़ाइलों का चयन करें। मोड को "खोज और बदलें" और "नाम और प्रत्यय" में बदलें। "नियमित अभिव्यक्ति" की जाँच करें। अब खोज के स्थान पर निम्नलिखित पैटर्न का उपयोग करें:

file\.(.+)\.pdb

तथा

file.pdb.$1

अंत में नाम बदलें बटन पर क्लिक करें।

इस तरह से लाभ यह है कि आप वास्तव में नाम बदलने से पहले क्या होगा का एक दृश्य पूर्वावलोकन प्राप्त करते हैं।

थुनार नाम बदलकर संवाद


1
आप आदेश के साथ उपसर्ग लगाकर अधिकांश कार्यक्रमों को अंग्रेजी संदेश प्रिंट कर सकते हैं LC_MESSAGES=POSIX, जैसे LC_MESSAGES=POSIX free। चित्रमय अनुप्रयोगों के लिए समान काम करता है, हालांकि इसके डिफ़ॉल्ट कॉन्फ़िगरेशन में Nautilus जैसे लगातार अनुप्रयोगों के मामले में आपको पहले के साथ पिछले उदाहरण को समाप्त करने की आवश्यकता है nautilus -q
डेविड फ़ॉस्टर

@DavidFoerster का उल्लेख करने के लिए धन्यवाद, छवि को बदल दिया गया।
सेबस्टियन स्टार्क

3

आप उपयोग कर सकते हैं renameसे util-linux(आदेश में कहा जाता है इस के लिए rename.ulubuntu में):

rename.ul .pdb '' *
rename.ul "file." "file.pdb." *

यह पहले .pdbएक्सटेंशन को अंत से हटाता है और फिर इसे बीच में फिर से सम्मिलित करता है।


1
बहुत अच्छा। मुझे इसकी जानकारी नहीं थी rename.ul। वाक्यविन्यास थोड़ा, उम, अप्रत्याशित है, लेकिन यह वास्तव में आपके विज्ञापन के तरीके पर काम करता है। प्लस: इसमें एक -n(टच न करें, बस बताओ) स्विच है।
पर्लडक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.