नाम का उपयोग करके फ़ाइलों का नाम बदलना


2

मैं .srt फ़ाइलों का नाम बदलने की कोशिश कर रहा हूं। वर्तमान में मौजूद फाइलों में इस तरह के नाम हैं:

StargateSG1.s02e19.One.False.Step.AC3.DVDRip.DivX-AMC.srt

मैं परिणामी फ़ाइल को पसंद करूंगा:

StargateSG1.s02e19.srt

थोड़ी देर के लिए नाम बदलने के बाद मैं कमांड के साथ आया:

नाम बदलें का / (\ d {19}) / $ 1.srt/ '* .srt का

जिसे पहले 19 वर्णों को सहेजना और बाकी को हटाना है। यह काम नहीं कर रहा है और मैं स्तब्ध हूं। मैंने इसे खोज लिया है और मुझे कोई मदद नहीं मिल रही है, जहां तक ​​मैं बता सकता हूं कि यह काम करना चाहिए। किसी भी तरह की सहायता का स्वागत किया जाएगा। धन्यवाद

जवाबों:


3
$ rename -n 's/^(.{18}).*$/$1.srt/' *.srt
StargateSG1.s02e19.One.False.Step.AC3.DVDRip.DivX-AMC.srt renamed as StargateSG1.s02e19.srt

आपको 2 समस्याएं थीं:

  1. \dकिसी भी अंक के लिए खड़ा है, जबकि आप की जरूरत है .जो किसी भी चरित्र है।
  2. आप शेष फ़ाइल नाम से मेल नहीं खाते, इसलिए प्रतिस्थापन ऑपरेशन ने इसे नहीं हटाया होगा।

क्या आप कृपया समझा सकते हैं। * $ और ^
विदेगेटे

.*किसी भी वर्ण की कोई भी संख्या है। ^इनपुट की शुरुआत है, इनपुट $का अंत है, उनका उद्देश्य यह सुनिश्चित करना है कि हम इनपुट के कुछ हिस्सों के बजाय पूरे इनपुट को शुरू से अंत तक मेल खाते हैं।
डेव्लोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.