আপনি কি এর বিট সুস্পষ্ট মনে করেন না? আপনি একবার মাত্র এলোমেলো স্ট্রিং তৈরি করছেন এবং এটিকে ran
ভেরিয়েবলে সংরক্ষণ করছেন এবং এটি সমস্ত লাইনের জন্য ব্যবহার করছেন!
getline
পাইপ থেকে ভেরিয়েবল ব্যবহার করে Using
awk '{
str_generator = "tr -dc '[:alnum:]' </dev/urandom | head -c 6"
str_generator | getline random_str
close(str_generator)
print "name " random_str " - " $0
}' file
আপনি যখন ব্যবহার করবেন তখন command | getline var
কমান্ডের আউটপুটটি পাইপের মাধ্যমে getline()
ভেরিয়েবলটিতে এবং প্রেরণ করা হয় var
।
নোটটি যখন আউটপুট দেওয়ার জন্য খোলা হয়, awk
তার সাথে যুক্ত কমান্ডটি স্মরণ করে এবং পরবর্তী কমান্ডে লেখাগুলি পূর্ববর্তী লেখাগুলিতে যুক্ত হয়। close()
এটি রোধ করতে আমাদের কমান্ডের একটি সুস্পষ্ট কল করতে হবে।
যদি নেস্টেড সিঙ্গল-কোটগুলি str_generator
সমস্যা তৈরি করে থাকে তবে এর অষ্টাল সমতুল্য ( \047
) এর সাথে প্রতিস্থাপন করুন
awk '{
str_generator = "tr -dc \047[:alnum:]\047 </dev/urandom | head -c 6"
str_generator | getline random_str
close(str_generator)
print "name " random_str " - " $0
}' file
tr -dc '[:alnum:]' </dev/urandom | head -c 6
, এটি ব্যবহার করতে সহজ এবং আরও গণনামূলকভাবে দক্ষ হবেpwgen -s 6 1
, বা আরও ভালpwgen -s 6 $(wc -l myfile)
আপনাকে একটি শটটিতে আপনার প্রয়োজনীয় সমস্ত র্যান্ডম স্ট্রিং দেবে।