मेरे पास विभिन्न निर्देशिकाओं में होम वीडियो फ़ाइलों की संख्या है जो उस वर्ष को इंगित करने के लिए निर्देशिका नाम के अंत में एक वर्ष है जिसमें वीडियो फिल्माया गया था। यह उस निर्देशिका में फ़ाइल नाम के अंत में और विस्तार से पहले भी है। मैं वर्ष के आसपास कोष्ठक रखना चाहता हूं।
कुछ फाइलों और निर्देशिकाओं में अन्य पदों में फ़ाइलनाम में एक वर्ष (या संख्याएं जो एक वर्ष की तरह दिखती हैं) हो सकती हैं, लेकिन मैं अंत में वर्ष के आसपास कोष्ठक लगाना चाहता हूं। उदाहरण के लिए यहाँ निर्देशिकाओं में से एक है:
Videos/Xmas 2004 - Time To Go 2004
शामिल हैं:
Xmas 2004 - Time To To 2004.mp4
Xmas 2004 - Time To Go 2004.txt
Xmas 2004 - Time To Go 2004.readme
मैं अपनी सभी मीडिया फ़ाइलों का नामकरण इस नामकरण प्रणाली के साथ करना चाहता हूं:
Videos/Xmas 2004 - Time To Go (2004)
शामिल
Xmas 2004 - Time To To (2004).mp4
Xmas 2004 - Time To Go (2004).txt
Xmas 2004 - Time To Go (2004).readme
मैं यह कैसे करु? मैं फ़ाइलों और निर्देशिकाओं को पाने के लिए "खोज" कमांड का उपयोग कर सकता हूं:
find /home/user/Videos/ -iname "* [1-2][0-9][0-9][0-9]" # Find directories
find /home/user/Videos/ -iname "* [1-2][0-9][0-9][0-9].*" # Find files
मैं सोच रहा हूं कि मैं "-exec {} \" का उपयोग कैसे कर सकता हूं? संरचना का नाम बदलने या mv कमांड (या sed या awk) का उपयोग करने के लिए या क्या मैं फ़ाइल नाम स्ट्रिंग में हेरफेर करने के लिए एक बैश स्क्रिप्ट लिखता हूं और इसे "-exec {} \" में डाल देता हूं;