मैं लिनक्स में फ़ाइलनाम के एक सेट का नाम कैसे बदल सकता हूं?


9

मेरे पास एक फ़ोल्डर है जिसका नाम चित्र है:

pic001-2.png
pic002-2.png
pic003-2.png 

मैं उन्हें निम्नलिखित का नाम कैसे दूं?

pic001.png
pic002.png
pic003.png 

मैंने कोशिश की है, mv "pic*-2.png" "pic*.png"लेकिन गलतियाँ होती रहती हैं।

जवाबों:


11

यह -2प्रत्येक फ़ाइल नाम में पाए गए पहले को हटा देगा :

for f in pic*-2.png; do
  mv "$f" "${f/-2/}"
done

यह परीक्षण करने के लिए, बस पहले जोड़ें echoकरने के लिए mvलाइन।


9

आपको उचित रूप से 'नाम बदलने' की आवश्यकता है!

कुछ इस तरह की कोशिश करो:

rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg

यह पहला तर्क के रूप में एक नियमित अभिव्यक्ति लेता है, इसलिए आपके पैटर्न-मिलान और हेरफेर विकल्प बहुत व्यापक हैं। पूर्ण विवरण के लिए नाम (1) मैन पेज देखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.