গণ ফাইলের নাম বদলে রাখলেও ফাইলের নামের একটি অংশ রাখা


4

আমার কাছে একটি বিশাল সংখ্যক .jpg ফাইল রয়েছে যা একটি ফাইল আইডির সামনে অতিরিক্ত তথ্য রয়েছে যা পরবর্তী প্রকল্পের জন্য আমার ফাইলের কাঠামোটি আরও ভালভাবে সেট আপ করতে আমার অপসারণ করতে হবে। কমান্ড লাইন বা ব্যাশের যেভাবে আমি ব্যাচের পুনরায় নামকরণ করতে পারি (ব্যাশ ভাল)

উদাহরণ: A_file_name_f3xe3_1_60113520.jpg - (60113520 আইডি হচ্ছে) হতে হবে: 60113520.jpg

সমস্ত ফাইলের আইডির আগে আন্ডারস্কোর থাকে তবে এলোমেলোভাবে নামে অন্যত্র অতিরিক্ত আন্ডারস্কোর স্থাপন করা হয়।

উত্তর:


4

এর জন্য বিশেষত উপযুক্ত একটি আদেশ রয়েছে:

rename -n 's/.*?(\d+.jpg$)/$1/' *.jpg

এটি prenameচালু debianএবং ডেরাইভেটেড এবং এটি কার্যকর করা যায় perl

-nআপনার পরীক্ষাটি আপনার প্রয়োজন অনুসারে স্যুইচ সরান ।

এটিকে ডিফল্ট করতে (এখনও debianএবং উদ্ভূত:

 update-alternatives --set rename /usr/bin/prename

1
নেমা লিখেছেন যে নামের এলোমেলোভাবে অতিরিক্ত আন্ডারস্কোর স্থাপন করা হয়েছে , এটি আইডির আগে কোনও সামঞ্জস্যপূর্ণ ফাইলের নাম উপসর্গ নির্দেশ করে না।
ড্যানিয়েল বেক

1

নিম্নলিখিত ব্যবহার:

for FILE in *.jpg ; do mv -v "$FILE" "${FILE//*_/}" ; done

এটি জেপিজি ফাইলের নামের সমস্ত ফাইল সরিয়ে দেয় এবং ফাইলের নামের শেষ আন্ডারস্কোর সহ। এটি এখানে সাবস্ট্রিং প্রতিস্থাপন বিভাগে বর্ণিত হয়েছে :

$ {স্ট্রিং // সাবস্ট্রিং / প্রতিস্থাপন}

এর $substringসাথে সমস্ত ম্যাচ প্রতিস্থাপন করুন $replacement

আপনার ক্ষেত্রে, replacementখালি।


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