ডাব্লু: ডাব্লু টার্মিনাল কমান্ড ব্যবহার করে শেল স্ক্রিপ্টিং শেখা
জিএনইউ / লিনাক্স টাইপের ফ্রি অপারেটিং সিস্টেমগুলিতে "অ্যাভ" কমান্ডটি একটি খুব শক্তিশালী কমান্ড, যা অন্যান্য কমান্ড বা কমান্ডের ডেটা প্রসেস করার সময় আমাদের আরও বেশি নিয়ন্ত্রণ করতে সহায়তা করে। এডাব্লু কে নামটি এর লেখকদের উপাধির সূচনা থেকে প্রাপ্ত: আলফ্রেড der Aহো, পিটার Wআইনবার্গার এবং ব্রায়ান Kআর্নিঘান
এই কমান্ডটি পাঠ্য প্রক্রিয়াজাতকরণের জন্য একটি স্ক্রিপ্টিং ভাষা সরবরাহ করে যার সাহায্যে আমরা করতে পারি: ভেরিয়েবলগুলি সংজ্ঞায়িত করতে, স্ট্রিং এবং পাটিগণিত অপারেটরগুলি ব্যবহার করতে, প্রবাহ নিয়ন্ত্রণ এবং চক্র ব্যবহার করতে, এবং ফর্ম্যাট প্রতিবেদন তৈরি করতে পারে। প্রকৃতপক্ষে, আওক কেবল একটি প্যাটার্ন প্রসেসিং কমান্ডের চেয়ে বেশি, এটি একটি সম্পূর্ণ সিনেটিক বিশ্লেষণ ভাষা।
"Awk" কমান্ডের পরিচিতি
ইউএনআইএক্স পাইপগুলির কার্যকারিতা সর্বাধিক করে ডেটা ম্যানেজ করার জন্য (হ্যান্ডলিং / এক্সট্র্যাক্টিং) ডেটা-র জন্য প্রথম খুব জনপ্রিয় কনসোল ইউটিলিটিগুলির মধ্যে AWK অন্যতম ছিল। এই ইউটিলিটি দ্বারা সরবরাহিত ভাষা বর্তমানে প্রায় সমস্ত আধুনিক ইউএনআইএক্স-টাইপ অপারেটিং সিস্টেমগুলির মধ্যে একটি স্ট্যান্ডার্ড, এতটাই যে এটি বেসিক ইউনিক্স স্পেসিফিকেশনের অংশ, তাই সাধারণত এটি বেশিরভাগটিতে পূর্বনির্ধারিতভাবে ইনস্টল করা থাকে।
এর সর্বাধিক প্রচলিত বাক্য গঠন: হ'ল 'প্রোগ্রাম' ফাইল এবং যেখানে 'প্রোগ্রাম' হতে পারে: প্যাটার্ন {ক্রিয়া} প্যাটার্ন {ক্রিয়া}} কমান্ডটি একবারে ফাইল ইনপুট পড়বে reads প্রতিটি সারিটি প্রতিটি প্যাটার্নকে ক্রমানুসারে তুলনা করে; সারিটির সাথে মেলে এমন প্রতিটি প্যাটার্নের জন্য, সংশ্লিষ্ট ক্রিয়াটি সম্পাদিত হয়।
একটি সাধারণ উদাহরণ:
awk -F: '$1=="root" {print}' /etc/passwd
এটি প্রথম ক্ষেত্রের জন্য জিজ্ঞাসা করে যদি এটি / ইত্যাদি / পাসডাব্লুডের প্রতিটি লাইনের মূল হয় এবং ":" সাথে-এফ: ক্ষেত্র বিভাজক হিসাবে বিবেচনা করে এটি মুদ্রণ করে।
ব্যবহারিক উদাহরণ
সর্বাধিক ব্যবহৃত আদেশের তালিকা
সর্বাধিক ঘন ঘন ব্যবহৃত হওয়া থেকে অর্ডার করা সিস্টেম টার্মিনালের ইতিহাসের ভিত্তিতে একটি তালিকা দেখুন।
history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head
উদাহরণ:

প্রতিটি হোস্টের সংযোগের সংখ্যা সহ গ্রাফ (সারণী)
একটি ASCII পাঠ্য-ভিত্তিক গ্রাফ তৈরি করুন যা হোস্ট থেকে প্রতিটি আইপি ঠিকানায় সংযোগের মোট সংখ্যা দেখায়।
netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'
উদাহরণ:

আকার অনুসারে ডিরেক্টরিগুলির তালিকা
সর্বনিম্ন থেকে ক্ষুদ্রতম পর্যন্ত বর্তমান পথের ডিরেক্টরিগুলির তালিকা স্ক্রিনে মুদ্রণ করুন: জি, এম এবং কে।
du --max-depth=1 | sort -r -n | awk '{split("k m g",v); s=1; while($1>1024){$1/=1024; s++} print int($1)" "v[s]"\t"$2}'
উদাহরণ:

একটি নেটওয়ার্ক ইন্টারফেস থেকে ট্র্যাফিক দেখান
নির্দিষ্ট নেটওয়ার্ক ইন্টারফেসের জন্য কিলোবাইটে (কেবি) অনলাইনে ইনবাউন্ড এবং আউটবাউন্ড ডেটা ব্যবহার দেখুন।
while [ /bin/true ]; do OLD=$NEW; NEW=`cat /proc/net/dev | grep eth0 | tr -s ' ' | cut -d' ' -f "3 11"`; echo $NEW $OLD | awk '{printf("\rin: % 9.2g\t\tout: % 9.2g", ($1-$3)/1024, ($2-$4)/1024)}'; sleep 1; done
উদাহরণ:

একটি ফিবোনাচি নম্বর সিরিজ পান
2 বেস নম্বরগুলি নির্মাণের জন্য দেওয়া ফাইবোনাকির ধরণ অনুসরণ করে এক্স পরিমাণ সংখ্যার একটি তালিকা তৈরি করুন।
seq 50| awk 'BEGIN {a=1; b=1} {print a; c=a+b; a=b; b=c}'
উদাহরণ:

আকার অনুসারে ফাইলের কাঠামোর গ্রাফিক তালিকা
অপারেটিং সিস্টেমের মূলের সমস্ত ফোল্ডারের একটি তালিকা গ্রাফিক (বার) এবং সংখ্যার উপস্থাপনার সাথে এর আকারের শতাংশ হিসাবে তার সাথে পাওয়া যাবে।
t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');sudo du / --max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++){printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'
উদাহরণ:

একটি ডিরেক্টরিতে ফাইল ধরণের সংক্ষিপ্তসার তালিকাভুক্ত করুন
ডিরেক্টরিতে অন্তর্ভুক্ত ফাইলের সংখ্যার সাথে ফাইলগুলির ধরণের তালিকা প্রদর্শন করুন।
find . -type f | awk -F'.' '{print $NF}' | sort| uniq -c | sort -g
উদাহরণ:

Awk কমান্ড ব্যবহার করে কমান্ড লাইনগুলির এই উদাহরণগুলি আমি আশা করি আপনি এটি খুব দরকারী বলে মনে করেন। এবং এগুলি সরাসরি কোনও স্ক্রিপ্টে (স্বয়ংক্রিয় টাস্ক) byুকিয়ে কনসোল থেকে বা অপ্রত্যক্ষভাবে ব্যবহার করা যায়।
শেল স্ক্রিপ্টিং এর পরবর্তী পোস্টে আমরা অন্যান্য কমান্ডগুলি অন্বেষণ করব।
যদি আপনি "গ্রেপ" কমান্ডটি সম্পর্কে আরও কিছু জানতে চান তবে এই লিঙ্কটিতে যান "দেবিয়ান উইকি”এবং আপনি যদি আমাদের নিজস্ব ব্লগে শেল স্ক্রিপ্টিং সম্পর্কে আরও জানতে চান, আপনি এখানে ক্লিক করে বিষয়টিতে আমাদের অন্যান্য প্রকাশনাগুলি একবার দেখে নিতে পারেন: ফ্রিলিনাক্সে স্ক্রিপ্টিং
