অ্যারেতে কীভাবে ফলাফল আউটপুট স্থাপন করা যায়


3

আমি ইউনিক্সের নবাগত। আমার একটি আবশ্যকতা আছে যার মধ্যে আমাকে অনুসন্ধানের স্টেটমেন্টের আউটপুট অ্যারেতে রাখতে হয় কারণ পরে স্ক্রিপ্টে আমাকে আউটপুট লাইনগুলি একে একে ব্যবহার করতে হয়। আমার সন্ধানের বিবৃতি শর্তের ভিত্তিতে ডিরেক্টরিগুলির অবস্থান আমাকে পুনরুদ্ধার করবে।

এখানে অনুসন্ধানের বিবৃতি রয়েছে:

find blah -mindepth 3 -maxdepth 3 -type d  -regex ".*/V[0-9]+/wsdls+" 

আমি এর জন্য একটি সমাধান পেয়েছি .. অ্যারে = ($ (ব্লাহ -মাইন্ডপথ 3 -ম্যাক্সডেপথ 3-টাইপ ডি-রিরেজেক্স "" সন্ধান করুন। * / ভি [0-9] + / ডাব্লুএসডিএলস "") "= $ এ ফাইলের জন্য আই = 0 ray অ্যারে [@]} "ডু ইকো" $ {ফাইল} "আই ++ করা যাক তবে এখানে আশ্চর্যজনক বিষয়টি হ'ল এটি সম্পাদন করার পরেও আমি সঠিকভাবে ডেটা দেখতে সক্ষম হয়েছি তবে প্রতিটি লাইনে আমি বলছি যে ++ একটি ভ্যালিডা কমান্ড নয় ... এবং আমি আই ++ অপসারণ করার সাথে সাথেই এটি আমাকে সঠিকভাবে ডেটা দিয়েছে..আমার প্রশ্ন হ'ল আমরা কীভাবে এর মান বাড়িয়ে
দিচ্ছি

যদি আপনি কোনও উত্তর খুঁজে পান তবে দয়া করে এটি একটি সত্য উত্তর হিসাবে পোস্ট করুন, কোনও মন্তব্য নয়।
ওয়াফার্স

যখন আমরা আপনার কোডটিতে নতুন লাইনগুলি দেখতে পাচ্ছি না তখন আপনাকে সহায়তা করা কঠিন। দয়া করে এটি একটি উত্তর দিন।
গ্লেন জ্যাকম্যান

উত্তর:


6

তুমি এটি করতে পারো:

array=( $(find blah -mindepth 3 -maxdepth 3 -type d -regex ".*/V[0-9]+/wsdls+") )

# loop over it
for i in ${array[@]}
do
    echo $i
done

# or in a while loop
i=0;
while [ $i -lt ${#array[@]} ]
do
    echo $i: ${array[$i]}
    ((i++))
done

3
IFS=$'\n'যদিও আপনাকে প্রথমে সেট করতে হবে : যদি কোনও ফাইলের নামের ফাঁকা থাকে তবে আপনি সেগুলি একক অ্যারে উপাদান হিসাবে রাখতে চান। অ্যারের রেফারেন্স দেওয়ার সময় আপনি ডাবল কোট ব্যবহার করতে চাইবেন:for i in "${array[@]}"
গ্লেন জ্যাকম্যান

এটি বেশ পুরানো, তবে এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। এটি বেশ কার্যকরভাবে কাজ করে, এবং @glennjackman এর মন্তব্যটিও বেশ কার্যকর।
ক্যাস্পার

1
@ গ্লেনজ্যাকম্যানের উত্তরের একটি ব্যাখ্যা হ'ল IFS=$'\n'এসাইনমেন্ট স্টেটমেন্টের শুরুতে হওয়া দরকার, সাব-শেলের মধ্যে নয় find; যেমন IFS=$'\n' array=(...)
devstuff
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.