আমার কাছে যদি .htm এক্সটেনশন সহ একটি গ্রুপের ফাইল থাকে তবে আমি কীভাবে সেগুলি সবগুলি .html এ নামকরণ করতে পারি?
mv *.htm *.html
কাজ করে না.
আমার কাছে যদি .htm এক্সটেনশন সহ একটি গ্রুপের ফাইল থাকে তবে আমি কীভাবে সেগুলি সবগুলি .html এ নামকরণ করতে পারি?
mv *.htm *.html
কাজ করে না.
উত্তর:
অথবা, আপনি খাঁটি বাশ ব্যবহার করতে পারেন ... (এমভি ব্যতীত, এটি হল ..)
for file in *.htm; do mv "$file" "${file%.htm}.html"; done
এবং বাজে বেসমেন্ট স্টাফ এড়ানো। ;)
ব্যাশের পরিবর্তনশীল সম্প্রসারণ বিকল্পগুলির একটি বিস্তৃত সেট রয়েছে। এখানে ব্যবহৃত একটি '%' ভেরিয়েবলের মান থেকে ক্ষুদ্রতম মিলের প্রত্যয়টিকে সরিয়ে দেয়। প্যাটার্নটি গ্লোব প্যাটার্ন, তাই ${file%.*}
এটিও কাজ করবে। '%%' অপারেটর সর্বাধিক মিলে যাওয়া প্রত্যয়টি সরিয়ে দেয় এবং উপরের উদাহরণে ${file%%.*}.html
আদান-প্রদানযোগ্য , যেমন প্যাটার্নটি স্থির করা হয়েছে, যদিও এটি abhtm এএইচটিএমএলে পরিণত হবে।
আরও ঝরঝরে কৌশলগুলির জন্য ব্যাশ ম্যানপেজের পরিবর্তনশীল বিকল্প বিভাগটি দেখুন See সরাসরি বাশের মধ্যেও অনেক কিছু করা যায়।
ফাইলের নামগুলিতে ফাঁকা স্থান, নিউলাইনগুলি বা অন্যান্য সাদা স্থান থাকা উচিত নয়, তবে ফ্রেইহাইটের উত্তরের এই সংস্করণগুলি সেগুলি পরিচালনা করে। এটি $()
অন্যান্য সুবিধাগুলির পাশাপাশি পাঠযোগ্যতার জন্য ব্যাকটিকগুলির পরিবর্তে ব্যবহার করে।
for file in *.htm
do
mv "$file" "$(basename "$file" .htm).html"
done
আরও ভাল - কেবল শেষ করার জন্য বিশেষ ক্ষেত্রেটির জন্য:
for file in *.htm
do
mv "$file" "${file}l"
done
rename(1)
পার্ল ইউটিলিটি যা আপনি যা চান ঠিক তেমন করে। এক্ষেত্রে:
rename 's/\.htm$/.html/' *htm
অথবা আপনি যদি উপ ডিরেক্টরি ব্যবহার করেন তবে
(বাশ 4.0 এবং গ্লোবস্টার সেটিং প্রয়োজন shopt -s globstar
:)
rename 's/\.htm$/.html/' **/*htm
rename
পার্ল নিয়ে আসে এবং মূলত প্রতিটি ইউনিক্স এই দিনগুলিতে পার্ল নিয়ে আসে।
shopt -s globstar
(ডিফল্টরূপে বন্ধ থাকে)। এছাড়াও, ফোল্ডারগুলির চেয়ে লিনাক্স এবং ইউনিক্সের ডিরেক্টরি রয়েছে।
for file in *.htm; do
mv $file `basename "$file" .htm`.html
done
একটি সঙ্গে এটি ব্যবহার করে দেখুন echo
সামনে mv
প্রথমবার প্রায়।
আপনার আসল সমস্যাটি হ'ল " mv *.htm *.html
" *
শেলটি পরিচালনা করে, সুতরাং mv
কমান্ডটি কেবল বর্তমান ডিরেক্টরিতে সমস্ত .htm এবং .html ফাইলগুলির একটি তালিকা দেখতে পাবে। অন্য কথায়, " mv foo.htm bar.htm stuff.htm six.htm file.htm
" এর মতো কিছু । এমভি কেবলমাত্র 2 টিরও বেশি আর্গুমেন্ট পরিচালনা করতে পারে যদি শেষের ডিরেক্টরি হয় a
mv
কাজ করবে না।
সেরা হাতিয়ারটি এমএমভি ।
mmv \*.htm #1.html
" জিএনইউ / লিনাক্স কমান্ড-লাইন সরঞ্জাম সংক্ষিপ্তসার " ব্যবহারের অন্যান্য উদাহরণ (এবং অন্যান্য সরঞ্জামের) ।
#
।
Util-লিনাক্স-ng (ফেডোরা দিকে) প্যাকেজের মাধ্যমে একটি হয়েছে rename
হুকুমে উল্লিখিত এক অনুরূপ টিআরএস -80 । আপনি এটি এর মতো ব্যবহার করতে পারেন:
rename .htm .html *.html
ren *.htm *.html
উইন্ডোজটিতে কাজ করবে।