আপনার নির্দিষ্ট ক্ষেত্রে আপনি নিম্নলিখিত bashকমান্ডটি ব্যবহার করতে পারেন ( bashম্যাকোজে ডিফল্ট শেল):
for f in *.png; do echo mv "$f" "${f/_*_/_}"; done
নোট: যদি সেখানে একটা সুযোগ আপনার ফাইলের নামের দিয়ে শুরু -, স্থান -- তাদের পূর্বে [1]:
mv -- "$f" "${f/_*_/_}"
দ্রষ্টব্য: একটি শুকনো রান সঞ্চালন করার echoজন্য mvতাই প্রস্তুত করা হয়। প্রকৃত নামকরণ করতে এটি সরান।
আপনি এটি কমান্ড লাইন থেকে চালাতে পারেন বা স্ক্রিপ্টে এটি ব্যবহার করতে পারেন।
"${f/_*_/_}"bash প্যারামিটার সম্প্রসারণের একটি অ্যাপ্লিকেশন : (প্রথম) সাবস্ট্রিংয়ের মিলের প্যাটার্নটি _*_আক্ষরিক সাথে প্রতিস্থাপন করা হয় _, কার্যকরভাবে নাম থেকে মাঝের টোকেনটি কেটে।
- নোট যে
_*_একটি প্যাটার্ন (একটি ওয়াইল্ডকার্ড এক্সপ্রেশন, এছাড়াও গ্লোব্বিংয়ের জন্য ব্যবহৃত), নিয়মিত প্রকাশ নয় (নিদর্শন সম্পর্কে শিখতে, চালনা man bashএবং সন্ধানের জন্য Pattern Matching)।
আপনি যদি নিজেকে ঘন ঘন ব্যাচ-নামকরণের ফাইলগুলি খুঁজে পান তবে পার্ল-ভিত্তিক renameইউটিলিটি যেমন একটি বিশেষ সরঞ্জাম ইনস্টল করার বিষয়টি বিবেচনা করুন । ম্যাকোজে আপনি নীচে জনপ্রিয় প্যাকেজ ম্যানেজার হোমব্রু ব্যবহার করে এটি ইনস্টল করতে পারেন :
brew install rename
এখানে শীর্ষে কমান্ডের সমতুল্য ব্যবহার করে rename:
rename -n -e 's/_.*_/_/' *.png
আবার, এই আদেশটি একটি শুকনো রান সঞ্চালন করে; -nপ্রকৃত নাম পরিবর্তন করতে সরান ।
bashসমাধানের অনুরূপ , s/.../.../পাঠ্য প্রতিস্থাপন সম্পাদন করে, তবে - এর বিপরীতে bash- সত্যিকারের নিয়মিত এক্সপ্রেশন ব্যবহার করা হয়।
[1] বিশেষ যুক্তি উদ্দেশ্য --, যা সবচেয়ে ইউটিলিটি দ্বারা সমর্থিত, যে পরবর্তী আর্গুমেন্ট হিসাবে চিকিত্সা করা উচিত সংকেত হয় operands (মান), এমনকি যদি তারা চেহারা মত অপশন কারণে দিয়ে শুরু করতে -, যেমন জ্যাকব সি নোট।