ম্যাক ওএস এক্স, ব্যাচ প্রসেসিংয়ে অনেকগুলি ফাইলের নামকরণ


57

আমি একটি পুনর্নবীকরণ কমান্ডের মাধ্যমে লিনাক্সে ফাইলটির নাম পরিবর্তন করতাম:

rename 's/old_pattern/new_pattern/g' *glob

ম্যাক ওএস এক্স (স্নো চিতাবাঘ) এর মতো কিছু আছে কি?


নিম্নলিখিত নিবন্ধটি renameম্যাক ওএস এক্সে কীভাবে ইনস্টল করবেন তা ব্যাখ্যা করে: macosxhints.com/article.php?story=20050630022203488
পল আর

ব্যাকটিকগুলি আপনার মন্তব্যে প্রদর্শিত হচ্ছে না - আপনার সমাধানটি অন্তর্ভুক্ত করার জন্য আপনার সম্ভবত এটি উত্তর হিসাবে যুক্ত করা উচিত বা আপনার প্রশ্নটি সম্পাদনা করা উচিত।
পল আর

1
আমি খুঁজে পেয়েছি সেরা দ্রুত সমাধানটি বিল্ট-ইন অটোমেটার ব্যবহার করে চলেছে। : ধাপে সাহায্যের দ্বারা সহজ ধাপে জন্য এই নিবন্ধটি দেখুন tuaw.com/2008/11/11/...
nilay

নীলের জবাবটি যদি আমি মন্তব্য না
করতাম তবে

উত্তর:


49

সঙ্গে Homebrew , OS X এর জন্য একটি প্যাকেজ ম্যানেজার:

brew install rename 

তারপরে আপনি renameলিনাক্সের মতো একই কমান্ডগুলি চালাতে পারেন ।


3
আপনি ম্যাকপোর্টস প্যাকেজটিও ব্যবহার করতে পারেন: পোর্ট ইনস্টল করুন পি 5-ফাইল-নাম পরিবর্তন করুন
মিকেল অ্যাড্রোভার

2
@ মিকেলএড্রোভার: তবে পোর্টের সাথে আপনার ব্যবহার করতে হবে rename-5.22(যেখানে 22 ইনস্টল করা সংস্করণ রয়েছে)rename
mems এর

আপনি প্রতীকী লিঙ্কটির নাম পরিবর্তন করতে পারেনsudo mv /opt/local/bin/rename-XXX /opt/local/bin/rename
আকো

26

জেডএসএইচের শক্তিটি বুদ্ধিমানের সাথে ব্যবহার করুন ( zshযদি আপনি সেইসব দরিদ্র আত্মার মধ্যে থাকেন তবে যারা এটি ডিফল্টরূপে ব্যবহার করেন না):

autoload zmv
zmv '(*).htm' '$1.html'

জেডএমভি এমএমভি সিনট্যাক্স অনুসরণ করে


কিন্তু এটি কি রেজেক্স প্রতিস্থাপনের অনুমতি দেয়? এটি মনে হয় কেবল এক ধরণের বর্ধিত শেল গ্লোববিং।
গণিত

4
@ ব্রুবেলস্যাবস: হ্যাঁ, জেডএমভি রিজেক্সেপ প্রতিস্থাপন করতে পারে । যে ফাইল ম্যাচের জন্য *user*.html, এর এক্সটেনশন পরিবর্তন .htmlএবং এর সমস্ত সংঘটন পরিবর্তন rcকরতে final: zmv '(*user*).htm' '${1//rc/final}.html' @ghoppe: আমার মনে হয় zmv আপনার উত্তর চাহিদা উদাহরণ -wবা তার ওয়াইল্ডকার্ড প্রায় প্রথম বন্ধনী।
ক্রিস জনসেন

আমি সত্যিই এই পরামর্শটি পছন্দ করি কারণ আপনার কোনও ম্যাকের (ব্রিউয়ের মতো) অতিরিক্ত কিছু ইনস্টল করার দরকার নেই, তবে এটি আপনাকে সিন্ট্যাক্সের মতো সহজ এমএমভি ব্যবহার করার অনুমতি দেয়।
খাসা

+1 সুন্দর। রেজেক্স থেকে কয়েকবার পার্থক্য: আমি অভ্যস্ত: 1) সমস্ত পাওয়ার *পরিবর্তে ব্যবহার করুন .**?মনে হচ্ছে অ লোভীর মতো কাজ করছে .*?। 2) আমার জন্য, ^এবং $স্ট্রিংয়ের শুরু এবং শেষের জন্য এটি কিছু মিলছে না বলে মনে হয়েছে
ব্যবহারকারী 576ininstatemonica8

21

আমাকে আনাড়ি:

for i in *.yourfiles; do mv "$i" "`echo $i | sed 's/old/new/g'`"; done 

এবং আপনি যদি এটি ব্যবহার করতে চান তবে আমি প্রায়শই এইভাবে করি:

rename 's/old/new/' *.files

আমি এই লিট লিপিটি ~ / বিন / নাম পরিবর্তনে ব্যবহার করার পরামর্শ দিচ্ছি:

#!/usr/bin/env zsh
SUBSEXPR=$1
shift
for i in $@; do mv $i `echo "$i" | sed $SUBSEXPR`; done

আপনার স্ক্রিপ্টটি আমার পক্ষে কাজ করে না "এসিডিসির এসি-ডিসি এসিডিসির নাম পরিবর্তন করুন" "ফলাফল->" সেসড: এসিডিসি পড়তে পারবেন না: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই ", আমি লিনাক্স থেকে নতুন নাম ব্যবহার ইনস্টল করেছি এবং এখন এটি নতুন কাজ করে
হোলস

5

আপনি ম্যাকপোর্টগুলি ইনস্টল করার চেষ্টা করতে পারেন এবং renameutilsপ্যাকেজটি ইনস্টল করতে পারেন :

পুনঃনামাগুলি @ 0.10.0 (সিসুটিলস)

পুনঃনামনশীলগুলি হ'ল প্রোগ্রামগুলির একটি সেট যা ফাইলের নাম পরিবর্তন করে দ্রুত এবং কম জটিল করে তোলার জন্য ডিজাইন করা হয়েছিল


এই প্যাকেজের "পুনঃনামকরণ" কমান্ড নেই।
juanpablo

1
আমি বলিনি যে এটি করে। qmvদেখে মনে হচ্ছে এটি কাজ করে।
লাজ্জেট

qmvএকটি দুর্দান্ত সরঞ্জাম, যদিও সাধারণ
রেজেেক্স নামগুলির

4

নামকরণের বিভিন্ন সংস্করণ রয়েছে । দেখে মনে হচ্ছে আপনি পার্ল-ভিত্তিক একটি সন্ধান করছেন।

এই ইউটিলিটির একটি সংস্করণ আসে ফাইল :: নাম পরিবর্তন করে পার্ল মডিউল । আপনি এটির মতো কিছু ইনস্টল করতে পারেন sudo cpan -i File::Rename

অথবা, তোমার সাথে যেতে পারে পুনঃনামকরণ ডেবিয়ান এর থেকে Perl প্যাকেজ । এটি ডাউনলোড করার জন্য কেবল একটি একক ফাইল। আপনি যেখানে চান সেখানে এটিকে রাখুন এবং এটি chmod করুন যাতে এটি কার্যকর হয়।


একটি বিকল্প হল zmv সরঞ্জাম যা zsh এর সাথে আসে । এটিতে একই সিনট্যাক্স নেই, তবে এটি আপনার ওএসের সাথে আসে এবং এটি সহজেই অনেকগুলি সাধারণ ক্ষেত্রে যত্ন নিতে পারে।


Perl পুনঃনামকরণ কি এই প্রশ্নের একটি উদাহরণ হিসাবে দেখায়।
কোয়াকোট কোয়েসোট

2

ম্যাকগুলিতে আমি অ্যারিস্টটল পাগাল্টজিসের অবাধে উপলভ্য ব্যবহার করি renameযা ডিবিয়ানদের মতো পার্ল ভিত্তিক। আপনি এটি এখানে পেতে পারেন । বা এটি পড়ার জন্য এখানে যান - সর্বদা একটি ভাল ধারণা।

আপনার এটি অন্য কোথাও স্থাপন করা $PATHএবং এটি সম্পাদনযোগ্য ( chmod +x rename) করা দরকার এবং তারপরে আপনি ভাল good


2

এটি কঠিন হওয়া উচিত নয় তবে দৃশ্যত এটি। উদাহরণস্বরূপ, আমি সমস্ত ফাইলের এক্সটেনশানটি এআইএফ থেকে আইএফসি পর্যন্ত নামকরণ করতে চাই।

find . -iname "*.aiff" -exec bash -c 'mv "$0" "${0%\.aiff}.aifc"' {} \;

1

আপনি যদি কোনও জিইউআই খুঁজছেন তবে নেম ম্যাংলার চেষ্টা করুন । এটিতে একটি "পূর্বরূপ" বৈশিষ্ট্য রয়েছে যা দেখায় যে আপনি যদি নাম পরিবর্তন করে অনুসরণ করেন তবে কী হবে।



0

আপনি যদি সাব্লাইম টেক্সটের মাল্টিলেসলেট পছন্দ করেন তবে আপনি এটি কিউএমভি দিয়ে ব্যবহার করতে পারেন:

qmv --editor = "/ usr / bin / s3 -w" ফাইল


0

আমি কেবল এগিয়ে গিয়েছিলাম এবং আমার পছন্দের সন্ধান পেয়েছি পার্ল-নামকরণ হিসাবে উল্লেখ করা হয়েছে renameযেখানে কমান্ডটি দেওয়া হচ্ছে যেখানে সহায়তা এটির মতো দেখায়:

Usage: rename [-v] [-n] [-f] perlexpr [filenames]

আমি জানি যে আমি আমার পছন্দ মত একটি পেয়েছিলাম।

ম্যাকের জন্য, এমনকি হোমব্রুতেও তাদের এমন আরও কিছু রয়েছে যেখানে আমি কেবল অস্পষ্টভাবেই সমস্যা মনে করি। সুতরাং এটি renameপ্যাকেজ নয়, এবং এটি নংন্নু renameutilsপ্যাকেজও নয়।

এখান থেকে এটি পেয়েছেন এবং তারা যেমন উল্লেখ করেছেন ঠিক তেমন ইনস্টল করেছেন: https://github.com/subogero/rename

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