ওয়াইল্ডকার্ড linux প্রথম ম্যাচ


2

আমি আমার bash স্ক্রিপ্ট নীচের অংশ আছে:

for file in $(cat $csmtdirpath/$images_to_remove); do mv -v -f /$currentimages/*"$file"* $oldimages >> "$log_image_to_move" 2>> "$log_images_to_move_error"; done

এই পদ্ধতিটি কিছু সমস্যা সৃষ্টি করছে এমন একটি ওয়াইল্ডকার্ড ব্যবহার করছে।

তাই যদি আমি আছে 7AB.115.2 $ images_to_remove ফাইলে:

এবং ডিরেক্টরি যেখানে এটি দেখায় আছে:

  1. 7AB.115.2.1diudniwqndiqnwd
  2. 7AB.115.2.2ewfnweofnowenfwef
  3. 7AB.115.2.3fewklfkwemfkpwemfpkmw

এটি অন্য 3 ফোল্ডারকেও সরাতে পারে কারণ 7AB.115.2 একটি বৈধ বিকল্প ভিত্তিক "$ ফাইল" ওয়াইল্ডকার্ড।

ওয়াইল্ডকার্ড শুধুমাত্র প্রথম পাওয়া মিলটি ব্যবহার করে এবং পরে স্টপ করে কিভাবে আমি নিশ্চিত হতে পারি?

ধন্যবাদ।

চিয়ার্স,


আপনি সম্ভবত না করতে পারেন। ব্যবহার find … -exec … -quit অথবা তাই.
Kamil Maciorowski

উত্তর:


1

ওয়াইল্ডকার্ড শুধুমাত্র প্রথম পাওয়া মিলটি ব্যবহার করে এবং পরে স্টপ করে কিভাবে আমি নিশ্চিত হতে পারি?

শুধুমাত্র প্রথম ফাইল খুঁজে স্থানান্তর, প্রতিস্থাপন:

mv -v -f /$currentimages/*"$file"* $oldimages

সঙ্গে:

for f in "/$currentimages/"*"$file"*
do
    mv -v -f "$f" "$oldimages"
    break
done

break লুপ প্রথম ফাইল পরে প্রস্থান করার কারণ।

এছাড়াও, আমরা চারপাশে উদ্ধৃতি যোগ করেছেন currentimages এবং oldimages শব্দ বিভাজন প্রতিরোধ শেল ভেরিয়েবল।

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