बैश, फाइलें, फाइलों का नाम बदलना, पदों को बदलना

Dec 22 2020

नाम कैसे बदला जाए

sluno-20201027-call-metroua-status.mp4
sluno-20201103-call-deriva.mp4
sluno-20201103-call-metroua-status.mp4
sluno-20201105-call-makrocz.mp4
sluno-20201105-call-metroua-testcall.mp4
sluno-20201105-call-sluno-ggtabak.mp4
sluno-20201110-call-makrocz.mp4
sluno-20201110-call-metroua-status.mp4
sluno-20201110-call-sluno-utccz.mp4

सेवा मेरे

sluno-call-metroua-status-20201027.mp4
sluno-call-deriva-20201103.mp4
sluno-call-metroua-status-20201103.mp4
sluno-call-makrocz-20201105.mp4
...

7-14फ़ाइल के नाम के अंत में स्थिति पर तारीख / स्ट्रिंग को स्थानांतरित करें ।

धन्यवाद।

जवाब

7 bac0n Dec 22 2020 at 22:04

mmv नामांकित फ़ाइल के नामकरण के लिए अच्छी तरह से काम करता है ।

mmv '*-*-*-*.mp4' '#1-#3-#4-#2.mp4'

कुछ और संदर्भ बिंदुओं का होना भी मददगार हो सकता है, यह सुनिश्चित करने के लिए कि किसी और चीज़ पर नाम न बदलें, विशेषकर जहाँ एक ही निर्देशिका में अन्य फ़ाइलें हो सकती हैं।

mmv 'sluno-[0-9]*-call-[a-z]*.mp4' 'sluno-call-#3#4-#1#2.mp4'
             ^  ^        ^  ^
             1  2        3  4

sluno-20201027-call-metroua-status.mp4
      ^-------      ^-------------
      1   2         3       4

अगर मैं इसे नंगे न्यूनतम के साथ करना चाहता था, mvऔर bashमैं फॉर-लूप और bashबिलिन बीआरई मिलान के साथ जाऊंगा ।

for i in *.mp4; do \
    [[ $i =~ ^sluno-(.*)-call-(.*).mp4 ]] && \ mv -- "$i" "sluno-call-${BASH_REMATCH[2]}-${BASH_REMATCH[1]}.mp4"; \
done
4 pLumo Dec 22 2020 at 20:46

उपयोग करें rename:

rename -n 's/^(.*?)-(.*?)-(.*?)(\.mp4)$/$1-$3-$2$4/' *.mp4

-nयदि आउटपुट से आपका खुश है तो निकालें ।

स्पष्टीकरण के लिए, इस पर जाएँ ।

JohnP Dec 30 2020 at 01:47

एक अन्य विकल्प:

$ qmv {पैटर्न}

आपकी पसंद के संपादक में फ़ाइल नाम के 2 कॉलम को छोड़ देगा।

जिन फ़ाइलनामों को आप चाहते हैं उनके लिए सही कॉलम को संशोधित करें।

बाएँ स्तंभ का मूल नाम है। सही समूह का प्रारंभ स्तंभ नहीं बदला जा सकता है, इसलिए ऑटो-रैप रास्ते में मिल सकता है।

प्रत्येक संपादक के साथ एक विशेषज्ञ के हाथों में, यह तेजी से पागल हो सकता है, खासकर विम कॉलम और विज़ुअल मोड के लिए।

सामान्य तौर पर, मैं नाम का उपयोग करता हूं, लेकिन जटिल जरूरतों के लिए, संपादक में सटीक नाम देखना अच्छा है।