আপনার নির্দিষ্ট ক্ষেত্রে আপনি নিম্নলিখিত 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 (মান), এমনকি যদি তারা চেহারা মত অপশন কারণে দিয়ে শুরু করতে -
, যেমন জ্যাকব সি নোট।