ডিরেক্টরিতে ফাইলগুলির নাম পরিবর্তন করুন


10

কোনও ডিরেক্টরিতে যেমন ফাইলগুলির নাম পরিবর্তন করতে হয় যেমন নীচের ফাইল PMC21375.pdf.txt:, আমার নামকরণ করা দরকার 21375.txt। অর্থাত, আমি উভয় সরানোর প্রয়োজন PMCএবং pdfপ্রতিটি ফাইল নাম থেকে।

উত্তর:


9

সঙ্গে এর rename:

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আদেশের পথে প্রতিস্থাপন করুন ।


সর্বশেষে তবে অন্ততঃ এই সরঞ্জামটি মূলত পার্লের বাবা ল্যারি ওয়াল লিখেছিলেন।


এটি .pdfফাইলের নাম থেকে মুছে ফেলবে না ।
— উইলিয়াম এভারেট

সেই অনুসারে সম্পাদিত পোস্ট।
— গিলস কুইনট

5

পুনর্নামকরণ কমান্ড ছাড়াও আপনি এটি সরাসরি ব্যাশে করতে পারেন (অনেকের মধ্যে কেবল একটি উপায়):

 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ফাইলের নাম থেকে সরবে না।
— উইলিয়াম এভারেট

আপনি কি এটা চেষ্টা করেছেন? কারণ এটা আমার জন্য সম্পাদনায় দেখানো হয়েছে।
— hmontoliu

আমার খারাপ। আমি ভেবেছিলাম এটি কেবল বড় অক্ষরে রূপান্তরিত করবে। সম্মত।
— উইলিয়াম এভারেট

4

ফাইলগুলির নামকরণের জন্য বেশ কয়েকটি ইউটিলিটি রয়েছে তবে ব্যবহার করার সবচেয়ে সহজ একটি rename। আপনার ক্ষেত্রে, আপনি সম্ভবত এটি করতে পারেন:

rename PMC '' *txt
rename .pdf '' *txt

প্রথম পরামিতিটি প্রতিস্থাপনের জন্য ফাইল নামের অংশ is দ্বিতীয় প্যারামিটার হ'ল প্রতিস্থাপনের স্ট্রিং। এখানে আমি ''খালি স্ট্রিং প্রতিনিধিত্ব করতে ব্যবহার করছি । নিম্নলিখিত সমস্ত পরামিতিগুলি নামকরণের জন্য ফাইল, এখানে আমি *txtপাঠ্য ফাইলগুলিতে প্রতিস্থাপন সীমাবদ্ধ করতে ব্যবহার করেছি ।

renameআপনি যদি লিনাক্স চালাচ্ছেন তবে ইতিমধ্যে উপস্থিত থাকা উচিত। আপনি যদি একটি * BSD বা OS X চালাচ্ছেন তবে আপনাকে প্রথমে এটি ইনস্টল করতে হতে পারে।


আমি জিএনইউ আছে এমন কিছু নেই rename। এর মধ্যে একটি রয়েছে util-linuxএবং perlবিভিন্ন সিনট্যাক্স সহ একটি রয়েছে। এক আপনার কাছ থেকে মতো উল্লেখ করা করছি util-linuxযে কখনও কখনও বলা হয় rename.ulযাতে নিবন্ধের সাথে বিভ্রান্ত হবেন না renameথেকে perl, যখন কিছু অন্যান্য সিস্টেমের উপর, renameutil-লিনাক্স থেকে এক থেকে এক perlবলা হয় prename।
— স্টাফেন চেজেলাস

1
মাইন ইউজার-লিনাক্স থেকে এক। আমি ভুল করে ভেবেছিলাম এটি জিএনইউ কোর্টিলের অংশ।
— উইজেডসবারমারিনার

নতুন নামকরণের ডিবিয়ান সংস্করণটি এরকমই হবে rename 's/PMC// *.txtএবংrename s/\.pdf// *.txt
— উইলিয়াম এভারেট

1

প্রথমে আপনার ফাইলগুলির ব্যাকআপ করুন! তারপরে আপনি সাধারণ ফর্মের সাথে বর্তমান ডিরেক্টরিতে পাইথন ওয়ান-লাইনার ব্যবহার করতে পারেন:

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।


0

এটা চেষ্টা কর:

for i in *.pdf.txt; do j=${i//\.pdf/}; j=${j//PMC/}; mv $i $j; done

j=${i//\.pdf/}মানে খেলোয়াড়রা .pdfমধ্যে $iকিছুই। একইভাবে দ্বিতীয় জে অ্যাসাইনমেন্টটি পিএমসি থেকে মুক্তি পেয়ে।


0

আপনি যদি ব্যবহার করেন তবে zshএটি সাধারণ কাজ zmv:

zmv 'PMC(*).pdf.txt' '$1.txt'

( zmvসম্ভাব্য দ্বন্দ্বগুলি কৃপণভাবে পরিচালনা করে)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.