নির্দিষ্ট ডিরেক্টরি থেকে এক্সটেনশন থেকে নির্দিষ্ট ফাইল সন্ধান করুন


0

আমি একটি নির্দিষ্ট ডিরেক্টরি থেকে একটি নির্দিষ্ট ফাইলের নাম খুঁজে পেতে চাই।

এছাড়াও আমি সেই বিশেষ ডিরেক্টরিতে ফাইলের নাম জানি না। আমি কেবলমাত্র সেই ফাইলের বর্ধন জানি "অর্থ আপলোড"। তাই আপলোড হওয়া এক্সটেনশনটি ব্যবহার করে আমি ফাইলম্যানটি খুঁজতে চাই।

আমি নির্দিষ্ট ডিরেক্টরি পর্যন্ত সম্পূর্ণ পথ ছাড়াই আউটপুট ফাইলের নাম চাই, আমি কেবল ফাইলের নাম চাই।

তাহলে আমি কীভাবে পারি?


একটি বাস্তব উদাহরণ অন্তর্ভুক্ত করুন। এই মুহুর্তে আপনি কী চান তা বোঝা সত্যিই কঠিন, তবে একটি উদাহরণ সাধারণত এই জাতীয় কাজটি ব্যাখ্যা করার জন্য যথেষ্ট।
ড্যানিয়েল অ্যান্ডারসন

উত্তর:


0

রেভ-কাট-রেভ করে আপনি ফাইলের পথটি সরিয়ে ফেলতে পারেন:

ls dir/*.uploaded | rev | cut -d/ -f1 | rev

0

নমুনা ডিরেক্টরি কাঠামো:

$ ls -1 test
a
b.uploaded
c.uploaded
d.uploaded
e

সহ find, অন্য কমান্ডের মাধ্যমে পাইপিংয়ের মাধ্যমে উপযুক্ত xargs:

$ EXT='.uploaded'; find dir -maxdepth 1 -name "*$EXT" -exec basename {} "$EXT" \;
d
b
c

শেল স্ক্রিপ্টে basenameডিরেক্টরি এবং প্রত্যয় ফালা ব্যবহার করে :

$ EXT=".uploaded"; for i in dir/*"$EXT"; do basename -- "$i" "$EXT"; done
b
c
d

শেল স্ক্রিপ্টে, প্যারামিটার সম্প্রসারণ ব্যবহার করে:

$ EXT=".uploaded"; for i in dir/*"$EXT"; do i=${i##*/}; printf '%s\n' "${i%$EXT}"; done
b
c
d

মনে রাখবেন আপনি বেশ কয়েকটি ফাইল হিট করতে পারেন। আপনি ফাইলটির পরে কী ঘটতে চান তা সংজ্ঞায়িত করেননি। আপনি যদি নিশ্চিত হন যে কেবলমাত্র একটি ফাইলই মিলবে তবে আপনি basenameসরাসরি ব্যবহার করতে পারেন :

$ rm dir/{b,d}.uploaded
$ basename dir/*.uploaded .uploaded
c

গ্লোব একাধিক ফাইলের সাথে মেলে তবে এটি ব্যর্থ হবে।

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