আমি কীভাবে একটি রেজেক্স ব্যবহার করে প্রচুর ফাইলের নাম পরিবর্তন করতে পারি?


20

আমি ম্যাক ওএস এক্সে (10.7.2) অনেকগুলি ফাইলের নাম পরিবর্তন করতে চাই .. renameকমান্ডের জন্য আমার কাছে পার্ল প্যাকেজ নেই ।

আমার ফাইলে "T452-102456-0.png" এর মতো নাম রয়েছে এবং আমি "-0" অংশটি মুছতে চাই। আমি জানি আমার নিজের পিএইচপি-ক্লাইপ স্ক্রিপ্ট লিখে আমি এই ক্রিয়াটি করতে পারি তবে আমি একটি সহজ এবং দ্রুত সমাধান সম্পর্কে জানতে চাই।


"প্রচুর পিডিএফ ফাইল" এবং "আমার ফাইলে" T452-102456-0.png "এর মতো নাম রয়েছে তার মধ্যে কি যৌক্তিক দ্বন্দ্ব নেই?
manatwork

ওহ ... ফাইলের ধরণের কিছু আসে যায় না, তবে এটি সত্য ^^ আমি সম্পাদনা করছি, আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ =)
রাফাল

উত্তর:


21

বাশ বা Ksh একসাথে mvএটি সমাধান করতে পারে:

for f in *.png; do mv -n "$f" "${f/-0}"; done

প্রথম ড্যাশের পরেও ফাইলের নামটি "0" থাকতে পারে এবং "-0" সর্বদা বিন্দুর সামনে থাকে, আপনি সেই বিন্দুকেও প্রকাশের মধ্যে অন্তর্ভুক্ত করতে চাইতে পারেন:

for f in *.png; do mv -n "$f" "${f/-0./.}"; done

তবে যেহেতু নামকরণের নিয়মটি সহজ, আপনার যদি ইউট-লিনাক্স প্যাকেজ renameথেকে থাকে তবে তা এটিও করবে:

rename '-0.' '.' *.png

এটা পুরোপুরি কাজ করে। আপনাকে অনেক ধন্যবাদ =)
রাফাল

3

সাধারণ পদ্ধতি: কেবলমাত্র বর্তমান ডিরেক্টরিতে ফাইল

Zsh সহ:

autoload zmv
zmv '(*)-0(.png)' '$1$2'

অন্যান্য শাঁস সহ:

for x in *-0.png; do mv -- "$x" "${x%-0.*}.png"; done


বর্ধিত পদ্ধতি: বর্তমান ডিরেক্টরি এবং / অথবা উপ-ডিরেক্টরিতে ফাইল

Zsh সহ:

zmv '(**/)(*)-0(.png)' '$1$2$3'

Ksh93 সহ:

set -o globstar
for x in **/*-0.png; do mv -- "$x" "${x%-0.*}.png"; done

উপরের মতো বাশ ≥4 সহ, তবে কমান্ডের shopt -s globstarপরিবর্তে ব্যবহার করুন set

অন্যান্য শাঁস সহ:

find -name '*-0.png' -exec sh -c 'for x; do mv -- "$x" "${x%-0.*}.png"; done' _ {} +

zsh ইনস্টল করার আরেকটি দুর্দান্ত কারণ:) .... zmv
ডানাইডে

2

ওএসএক্স-এ ফিশ শেল এ:

for f in *.png; mv -n $f (basename $f -0.png).png; end

ফিশ শেল: https://fishshell.com/


2
এবং কি কারণে ডাউনটাতে? এটি প্রশ্নের বৈধ উত্তর is
jeffmcneill

0

আপনার যদি mmvপ্যাকেজ থাকে:

mmv '*-0.png' '#1.png'

(সাম্প্রতিক সংস্করণগুলির) মতো rename, এটি বিদ্যমান ফাইলগুলি ওভাররাইট করা এড়াতে যুক্তিসঙ্গত যত্ন নেবে।

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