কোনও ডিরেক্টরিতে যেমন ফাইলগুলির নাম পরিবর্তন করতে হয় যেমন নীচের ফাইল PMC21375.pdf.txt
:, আমার নামকরণ করা দরকার 21375.txt
। অর্থাত, আমি উভয় সরানোর প্রয়োজন PMC
এবং pdf
প্রতিটি ফাইল নাম থেকে।
কোনও ডিরেক্টরিতে যেমন ফাইলগুলির নাম পরিবর্তন করতে হয় যেমন নীচের ফাইল PMC21375.pdf.txt
:, আমার নামকরণ করা দরকার 21375.txt
। অর্থাত, আমি উভয় সরানোর প্রয়োজন PMC
এবং pdf
প্রতিটি ফাইল নাম থেকে।
উত্তর:
rename 's/(PMC|\.pdf)//g' *pdf.txt
ডেমো:
$ ls *txt
PMC21375.pdf.txt
$ rename -n 's/(PMC|\.pdf)//g' *txt
PMC21375.pdf.txt -> 21375.txt
shell
প্রম্পট থেকে । এটি খুব দরকারী, আপনি কিছু পার্ল কোড রাখতে পারেন যেমন আমি প্রতিস্থাপনে করি। যখন আপনার পরীক্ষাগুলি ভালিড হয়ে যায়
আপনি -n
(ড্রাই ড্রাই-মোড সুইচ) সরিয়ে ফেলতে পারেন ।
একই নামের অন্যান্য সরঞ্জাম রয়েছে যা এটি করতে সক্ষম হতে পারে বা নাও পারে, তাই সাবধান হন।
আপনি যদি নিম্নলিখিত কমান্ডটি চালনা করেন ( linux
)
$ file $(readlink -f $(type -p rename))
এবং আপনার মত একটি ফলাফল আছে
.../rename: Perl script, ASCII text executable
তাহলে এটিকে সঠিক সরঞ্জাম বলে মনে হচ্ছে =)
যদি তা না হয় তবে এটিকে ডিফল্ট (সাধারণত ইতিমধ্যে কেস) তৈরি করতে Debian
এবং ডেরাইভেটিভের মতো Ubuntu
:
$ sudo update-alternatives --set rename /path/to/rename
( /path/to/rename
আপনার perl's rename
আদেশের পথে প্রতিস্থাপন করুন ।
সর্বশেষে তবে অন্ততঃ এই সরঞ্জামটি মূলত পার্লের বাবা ল্যারি ওয়াল লিখেছিলেন।
পুনর্নামকরণ কমান্ড ছাড়াও আপনি এটি সরাসরি ব্যাশে করতে পারেন (অনেকের মধ্যে কেবল একটি উপায়):
for file in *pdf.txt; do mv $file ${file//[A-Z.]}.txt ; done
পিনিয়াকা কীভাবে এটি কাজ করে তা দেখানোর জন্য সম্পাদিত:
hmontoliu@ulises2:/tmp/foo$ touch PCM21375.pdf.txt PCM21376.pdf.txt
hmontoliu@ulises2:/tmp/foo$ ls
PCM21375.pdf.txt PCM21376.pdf.txt
hmontoliu@ulises2:/tmp/foo$ for file in *pdf.txt; do mv $file ${file//[A-Z.]}.txt ; done
hmontoliu@ulises2:/tmp/foo$ ls
21375.txt 21376.txt
.pdf
ফাইলের নাম থেকে সরবে না।
ফাইলগুলির নামকরণের জন্য বেশ কয়েকটি ইউটিলিটি রয়েছে তবে ব্যবহার করার সবচেয়ে সহজ একটি rename
। আপনার ক্ষেত্রে, আপনি সম্ভবত এটি করতে পারেন:
rename PMC '' *txt
rename .pdf '' *txt
প্রথম পরামিতিটি প্রতিস্থাপনের জন্য ফাইল নামের অংশ is দ্বিতীয় প্যারামিটার হ'ল প্রতিস্থাপনের স্ট্রিং। এখানে আমি ''
খালি স্ট্রিং প্রতিনিধিত্ব করতে ব্যবহার করছি । নিম্নলিখিত সমস্ত পরামিতিগুলি নামকরণের জন্য ফাইল, এখানে আমি *txt
পাঠ্য ফাইলগুলিতে প্রতিস্থাপন সীমাবদ্ধ করতে ব্যবহার করেছি ।
rename
আপনি যদি লিনাক্স চালাচ্ছেন তবে ইতিমধ্যে উপস্থিত থাকা উচিত। আপনি যদি একটি * BSD বা OS X চালাচ্ছেন তবে আপনাকে প্রথমে এটি ইনস্টল করতে হতে পারে।
rename
। এর মধ্যে একটি রয়েছে util-linux
এবং perl
বিভিন্ন সিনট্যাক্স সহ একটি রয়েছে। এক আপনার কাছ থেকে মতো উল্লেখ করা করছি util-linux
যে কখনও কখনও বলা হয় rename.ul
যাতে নিবন্ধের সাথে বিভ্রান্ত হবেন না rename
থেকে perl
, যখন কিছু অন্যান্য সিস্টেমের উপর, rename
util-লিনাক্স থেকে এক থেকে এক perl
বলা হয় prename
।
rename 's/PMC// *.txt
এবংrename s/\.pdf// *.txt
প্রথমে আপনার ফাইলগুলির ব্যাকআপ করুন! তারপরে আপনি সাধারণ ফর্মের সাথে বর্তমান ডিরেক্টরিতে পাইথন ওয়ান-লাইনার ব্যবহার করতে পারেন:
python -c "import glob,os; [os.rename(fn, fn.replace('PATTERN', 'REPLACE')) for fn in glob.glob('PATH/*')]"
আপনার নির্দিষ্ট ক্ষেত্রে, আপনি এটি দুটিবার ব্যবহার করতে পারেন:
python -c "import glob,os; [os.rename(fn, fn.replace('.pdf', '')) for fn in glob.glob('*')]"
অপসারণ .pdf
এবং আবার:
python -c "import glob,os; [os.rename(fn, fn.replace('PMC', '')) for fn in glob.glob('*')]"
অপসারণ করতে PMC
।
এটা চেষ্টা কর:
for i in *.pdf.txt; do j=${i//\.pdf/}; j=${j//PMC/}; mv $i $j; done
j=${i//\.pdf/}
মানে খেলোয়াড়রা .pdf
মধ্যে $i
কিছুই। একইভাবে দ্বিতীয় জে অ্যাসাইনমেন্টটি পিএমসি থেকে মুক্তি পেয়ে।
আপনি যদি ব্যবহার করেন তবে zsh
এটি সাধারণ কাজ zmv
:
zmv 'PMC(*).pdf.txt' '$1.txt'
( zmv
সম্ভাব্য দ্বন্দ্বগুলি কৃপণভাবে পরিচালনা করে)।
.pdf
ফাইলের নাম থেকে মুছে ফেলবে না ।