বিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print }'
এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print , }'
আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print , }'
কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}
যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print , }'
উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print , } END {print '--COMPLETED--'}'
উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'
এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-english
এই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-file
দ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print } ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print } '
লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk ' > 50' test.txt
এই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk ' ~ /Lira/' test.txt
আপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txt
আমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print,,}'
এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }
শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if (>100) print }' test.txt
আপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action
$ awk '{ if (>100) print; else print }' test.txt
উপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
কিভাবে এক্সেল এভারিফ করবেন
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print , , }'
বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
$ awk 'BEGIN{FS=' '; RS=''} {print ,}' new.txt
এই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'
আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'
18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{=''; print}' test.txt
এই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{='';='';print}' test.txt
19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txt
আমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txt
আমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txt
এখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt
উপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txt
আমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length(বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 ); }'বিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
$ awk '{ print length(বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 ); }' /etc/passwdবিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
উপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length(বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 ) > 10'বিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
$ awk '{ length(বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 ) > 5; }' /etc/passwdবিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
আপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'
এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt
আপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }
তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt
28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ',বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 , tolower(বিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 )) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ',বিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 , tolower(বিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 )) }' | shবিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
প্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'
যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'
আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'
যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'
র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m'বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 'x1B[m';next;}{print}'বিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {printবাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 }' /etc/fstabবিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
এই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print }' /etc/fstab
এটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print }'
আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. 'বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7 ;next}{print}' test.txtবিষয়বস্তু
- AWK প্রোগ্রাম বোঝা
- লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
- 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
- 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
- 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
- 4. END স্টেটমেন্ট ব্যবহার করুন
- 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
- 6. ফাইল থেকে তথ্য বের করুন
- 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
- 8. ইনপুট ফিল্ড বিভাজক সেট করুন
- 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
- 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
- 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
- 12. আউটপুট ফিল্ড বিভাজক সেট করুন
- 13. If Construct ব্যবহার করে
- 14. If-Else Constructs ব্যবহার করে
- 15. মাঠের প্রস্থ সেট করুন
- 16. রেকর্ড বিভাজক সেট করুন
- 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
- 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
- 19. খালি লাইন সরান
- 20. ট্রাইলিং হোয়াইটস্পেস সরান
- 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
- 22. বর্তমান ফাইলের নাম যাচাই করুন
- 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
- 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
- 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
- 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
- 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
- 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
- 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
- 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
- 31. একটি সংখ্যার সূচক মুদ্রণ করুন
- 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
- 33. লাল রঙের কম্পাইলার সতর্কতা
- 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
- 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
- 36. লাইনের আগে লাইন নম্বর যোগ করুন
- 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
- 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
- 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
- 40. মুদ্রণ সংস্করণ তথ্য
- ভাবনার সমাপ্তি
AWK একটি শক্তিশালী> পূর্ণাঙ্গ প্রোগ্রামিং ভাষা । AWK এর নাম তার লেখকদের আদ্যক্ষর থেকে পেয়েছে - Aho, Weinberger, and Kernighan। লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেমে awk কমান্ড AWK স্ক্রিপ্ট চালানো দোভাষীকে আহ্বান করে। সাম্প্রতিক সিস্টেমে awk এর বেশ কয়েকটি বাস্তবায়ন বিদ্যমান যেমন gawk (GNU awk), mawk (Minimal awk), and nawk (New awk), অন্যদের মধ্যে। আপনি যদি awk আয়ত্ত করতে চান তাহলে নিচের উদাহরণগুলো দেখুন।
AWK প্রোগ্রাম বোঝা
আউকে লেখা প্রোগ্রামগুলি নিয়ম নিয়ে গঠিত, যা কেবল প্যাটার্ন এবং ক্রিয়াগুলির একটি জোড়া। নিদর্শনগুলি একটি বন্ধনী {} এর মধ্যে গোষ্ঠীভুক্ত করা হয়, এবং যখনই awk প্যাটার্নের সাথে মেলে এমন টেক্সট খুঁজে পায় তখন অ্যাকশন অংশটি চালু হয়। যদিও ওয়ান-লাইনার লেখার জন্য awk তৈরি করা হয়েছিল, অভিজ্ঞ ব্যবহারকারীরা সহজেই এটি দিয়ে জটিল স্ক্রিপ্ট লিখতে পারে।
AWK প্রোগ্রামগুলি বড় আকারের ফাইল প্রক্রিয়াকরণের জন্য খুব দরকারী। এটি বিশেষ অক্ষর এবং বিভাজক ব্যবহার করে পাঠ্য ক্ষেত্র চিহ্নিত করে। এটি অ্যারে এবং লুপের মতো উচ্চ-স্তরের প্রোগ্রামিং কনস্ট্রাক্টও সরবরাহ করে। তাই প্লেইন আউক ব্যবহার করে শক্তিশালী প্রোগ্রাম লেখা খুব সম্ভব।
লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
অ্যাডমিনরা সাধারণত অন্যান্য ধরনের ফাইল ম্যানিপুলেশনের পাশাপাশি ডেটা উত্তোলন এবং রিপোর্টিংয়ের জন্য awk ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে awk আলোচনা করেছি। কমান্ডগুলি সাবধানে অনুসরণ করুন এবং সম্পূর্ণ বোঝার জন্য আপনার টার্মিনালে চেষ্টা করুন।
1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
বেশিরভাগ বহুল ব্যবহৃত লিনাক্স কমান্ড বিভিন্ন ক্ষেত্র ব্যবহার করে তাদের আউটপুট প্রদর্শন করুন। সাধারণত, আমরা এই ধরনের তথ্য থেকে একটি নির্দিষ্ট ক্ষেত্র বের করার জন্য লিনাক্স কাট কমান্ড ব্যবহার করি। যাইহোক, নিচের কমান্ডটি আপনাকে দেখায় কিভাবে awk কমান্ড ব্যবহার করে এটি করতে হয়।
$ who | awk '{print $1}'এই কমান্ডটি হু কমান্ডের আউটপুট থেকে শুধুমাত্র প্রথম ক্ষেত্র প্রদর্শন করবে। সুতরাং, আপনি কেবলমাত্র বর্তমানে লগ করা সমস্ত ব্যবহারকারীর ব্যবহারকারীর নাম পাবেন। এখানে, $ 1 প্রথম ক্ষেত্রের প্রতিনিধিত্ব করে। আপনাকে ব্যবহার করতে হবে $ N যদি আপনি N-th ক্ষেত্রটি বের করতে চান।
2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
Awk দোভাষী আমাদের যে কোন সংখ্যক ক্ষেত্র মুদ্রণ করতে দেয়। নীচের উদাহরণগুলি আমাদের দেখায় যে কে কমান্ডের আউটপুট থেকে প্রথম দুটি ক্ষেত্র বের করতে হয়।
$ who | awk '{print $1, $2}'আপনি আউটপুট ক্ষেত্রের ক্রম নিয়ন্ত্রণ করতে পারেন। নিচের উদাহরণটি প্রথমে হুক কমান্ড দ্বারা উত্পাদিত দ্বিতীয় কলাম এবং তারপর দ্বিতীয় ক্ষেত্রের প্রথম কলাম প্রদর্শন করে।
$ who | awk '{print $2, $1}'কেবল ক্ষেত্রের পরামিতিগুলি ছেড়ে দিন ( $ N ) সম্পূর্ণ ডেটা প্রদর্শন করতে।
3. BEGIN স্টেটমেন্ট ব্যবহার করুন
BEGIN স্টেটমেন্ট ব্যবহারকারীদের আউটপুটে কিছু পরিচিত তথ্য প্রিন্ট করতে দেয়। এটি সাধারণত awk দ্বারা উত্পন্ন আউটপুট ডেটা ফরম্যাট করার জন্য ব্যবহৃত হয়। এই বিবৃতির বাক্য গঠন নীচে দেখানো হয়েছে।
BEGIN { Actions} {ACTION}যে ক্রিয়াগুলি BEGIN বিভাগ গঠন করে তা সর্বদা ট্রিগার হয়। তারপর awk বাকি লাইনগুলো এক এক করে পড়ে এবং দেখে কিছু করার দরকার আছে কিনা।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2}'উপরের কমান্ডটি হু কমান্ডের আউটপুট থেকে বের করা দুটি আউটপুট ক্ষেত্রকে লেবেল করবে।
4. END স্টেটমেন্ট ব্যবহার করুন
আপনার ক্রিয়াকলাপের শেষে নির্দিষ্ট ক্রিয়াগুলি সর্বদা সম্পাদিত হয় তা নিশ্চিত করতে আপনি END বিবৃতিটি ব্যবহার করতে পারেন। ক্রিয়াগুলির মূল সেটের পরে কেবল শেষ বিভাগটি রাখুন।
$ who | awk 'BEGIN {print 'User From'} {print $1, $2} END {print '--COMPLETED--'}'উপরের কমান্ডটি আউটপুট শেষে প্রদত্ত স্ট্রিং যুক্ত করবে।
5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
Awk এর কাজের একটি বড় অংশ প্যাটার্ন ম্যাচিং এবং regex জড়িত। যেমনটি আমরা ইতিমধ্যে আলোচনা করেছি, প্রতিটি ইনপুট লাইনে প্যাটার্নের জন্য awk অনুসন্ধান করে এবং যখন একটি ম্যাচ ট্রিগার হয় তখনই ক্রিয়াটি সম্পাদন করে। আমাদের পূর্ববর্তী নিয়মগুলি কেবল ক্রিয়াকলাপ নিয়ে গঠিত। নীচে, আমরা লিনাক্সে awk কমান্ড ব্যবহার করে প্যাটার্ন মিলের মূল বিষয়গুলি চিত্রিত করেছি।
$ who | awk '/mary/ {print}'এই কমান্ডটি দেখতে পাবে যে ব্যবহারকারী মেরি বর্তমানে লগ ইন করেছেন কিনা। যদি কোন মিল পাওয়া যায় তবে এটি পুরো লাইনটি আউটপুট করবে।
6. ফাইল থেকে তথ্য বের করুন
Awk কমান্ড ফাইলগুলির সাথে খুব ভাল কাজ করে এবং জটিল ফাইল প্রসেসিং কাজের জন্য ব্যবহার করা যেতে পারে। নিচের কমান্ডটি ব্যাখ্যা করে কিভাবে awk ফাইল পরিচালনা করে।
$ awk '/hello/ {print}' /usr/share/dict/american-englishএই কমান্ডটি আমেরিকান-ইংরেজি অভিধান ফাইলে 'হ্যালো' প্যাটার্নটি অনুসন্ধান করে। এটি বেশিরভাগ ক্ষেত্রেই পাওয়া যায় লিনাক্স-ভিত্তিক বিতরণ । সুতরাং, আপনি সহজেই এই ফাইলে awk প্রোগ্রামগুলি চেষ্টা করতে পারেন।
7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
যদিও ওয়ান-লাইনার প্রোগ্রাম লেখা দরকারী, আপনি awk সম্পূর্ণ ব্যবহার করে বড় প্রোগ্রামও লিখতে পারেন। আপনি সেগুলি সংরক্ষণ করতে চান এবং সোর্স ফাইল ব্যবহার করে আপনার প্রোগ্রামটি চালাতে চান।
$ awk -f script-file $ awk --file script-fileদ্য -ফ অথবা - ফাইল বিকল্প আমাদের প্রোগ্রাম ফাইল নির্দিষ্ট করার অনুমতি দেয়। যাইহোক, আপনাকে স্ক্রিপ্ট-ফাইলের ভিতরে উদ্ধৃতি (‘‘) ব্যবহার করার দরকার নেই কারণ লিনাক্স শেল প্রোগ্রাম কোডকে এভাবে ব্যাখ্যা করবে না।
8. ইনপুট ফিল্ড বিভাজক সেট করুন
একটি ক্ষেত্র বিভাজক হল একটি বিভাজক যা ইনপুট রেকর্ডকে বিভক্ত করে। আমরা সহজেই ক্ষেত্র বিভাজককে awk ব্যবহার করে নির্দিষ্ট করতে পারি -এফ অথবা – ফিল্ড-বিভাজক বিকল্প এটি কীভাবে কাজ করে তা দেখতে নীচের কমান্ডগুলি দেখুন।
$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} 'লিনাক্সে ওয়ান-লাইনার awk কমান্ডের পরিবর্তে স্ক্রিপ্ট ফাইল ব্যবহার করার সময় এটি একই কাজ করে।
9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
আমরা আলোচনা করেছি লিনাক্স কাট কমান্ড আগের গাইডে। এখন আমরা আপনাকে দেখাব কিভাবে awk ব্যবহার করে তথ্য বের করতে হয় যখন নির্দিষ্ট মানদণ্ড মিলে যায়। আমরা সেই গাইডে ব্যবহৃত একই টেস্ট ফাইল ব্যবহার করব। সুতরাং সেখানে যান এবং এর একটি অনুলিপি তৈরি করুন test.txt ফাইল
$ awk '$4 > 50' test.txtএই কমান্ডটি সমস্ত দেশকে test.txt ফাইল থেকে মুদ্রণ করবে, যার জনসংখ্যা ৫০ কোটিরও বেশি।
10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
নিচের awk কমান্ডটি পরীক্ষা করে যে কোন লাইনের তৃতীয় ক্ষেত্রটিতে 'লিরা' প্যাটার্ন আছে কি না এবং যদি কোন মিল পাওয়া যায় তাহলে পুরো লাইনটি প্রিন্ট করে। আমরা আবার test.txt ফাইল ব্যবহার করছি যা চিত্রিত করতে ব্যবহৃত হয় লিনাক্স কাট কমান্ড । সুতরাং এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি এই ফাইলটি পেয়েছেন।
$ awk '$3 ~ /Lira/' test.txtআপনি চাইলে যেকোনো ম্যাচের একটি নির্দিষ্ট অংশ মুদ্রণ করতে পারেন।
11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
Awk কমান্ডের অনেক বিশেষ উদ্দেশ্য ভেরিয়েবল রয়েছে যা আমাদের অনেক উন্নত জিনিস সহজে করতে দেয়। এমন একটি পরিবর্তনশীল হল NR, যার মধ্যে বর্তমান লাইন নম্বর রয়েছে।
$ awk 'END {print NR} ' test.txtআমাদের test.txt ফাইলে কতগুলি লাইন আছে এই কমান্ডটি আউটপুট দেবে। এটি প্রথমে প্রতিটি লাইনের উপর পুনরাবৃত্তি করে, এবং একবার এটি END এ পৌঁছে গেলে, এটি NR- এর মান মুদ্রণ করবে - যা এই ক্ষেত্রে লাইনের মোট সংখ্যা ধারণ করে।
12. আউটপুট ফিল্ড বিভাজক সেট করুন
এর আগে, আমরা দেখিয়েছি কিভাবে ব্যবহার করে ইনপুট ক্ষেত্র বিভাজক নির্বাচন করতে হয় -এফ অথবা – ফিল্ড-বিভাজক বিকল্প Awk কমান্ড আমাদের আউটপুট ক্ষেত্র বিভাজক নির্দিষ্ট করার অনুমতি দেয়। নীচের উদাহরণটি ব্যবহারিক উদাহরণ ব্যবহার করে এটি প্রদর্শন করে।
$ date | awk 'OFS='-' {print$2,$3,$6}'এই কমান্ডটি dd-mm-yy বিন্যাস ব্যবহার করে বর্তমান তারিখ প্রিন্ট করে। ডিফল্ট আউটপুট কেমন দেখাচ্ছে তা দেখার জন্য awk ছাড়া তারিখ প্রোগ্রাম চালান।
13. If Construct ব্যবহার করে
অন্যদের মত জনপ্রিয় প্রোগ্রামিং ভাষা , awk ব্যবহারকারীদের if-else নির্মাণের সাথে প্রদান করে। যদি awk এর বিবৃতিতে নীচের সিনট্যাক্স থাকে।
if (expression) { first_action second_action }শর্তাধীন অভিব্যক্তি সত্য হলে সংশ্লিষ্ট ক্রিয়াগুলি সম্পাদিত হয়। নীচের উদাহরণটি আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করে test.txt ।
$ awk '{ if ($4>100) print }' test.txtআপনার কঠোরভাবে ইন্ডেন্টেশন বজায় রাখার দরকার নেই।
14. If-Else Constructs ব্যবহার করে
নিচের সিনট্যাক্স ব্যবহার করে আপনি যদি অন্যথায় মই তৈরি করতে পারেন তবে আপনি দরকারী তৈরি করতে পারেন। ডাইনামিক ডেটা নিয়ে কাজ করে এমন জটিল অক স্ক্রিপ্ট তৈরির সময় এগুলি কার্যকর।
if (expression) first_action else second_action$ awk '{ if ($4>100) print; else print }' test.txtউপরের কমান্ডটি পুরো রেফারেন্স ফাইলটি প্রিন্ট করবে কারণ চতুর্থ ক্ষেত্রটি প্রতিটি লাইনের জন্য 100 এর বেশি নয়।
15. মাঠের প্রস্থ সেট করুন
কখনও কখনও ইনপুট ডেটা বেশ অগোছালো, এবং ব্যবহারকারীদের তাদের প্রতিবেদনে তাদের কল্পনা করা কঠিন হতে পারে। সৌভাগ্যবশত, awk FIELDWIDTHS নামে একটি শক্তিশালী অন্তর্নির্মিত ভেরিয়েবল প্রদান করে যা আমাদের প্রস্থের একটি হোয়াইটস্পেস-বিচ্ছিন্ন তালিকা নির্ধারণ করতে দেয়।
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।
16. রেকর্ড বিভাজক সেট করুন
আরএস বা রেকর্ড বিভাজক আরেকটি অন্তর্নির্মিত পরিবর্তনশীল যা আমাদের রেকর্ডগুলি কীভাবে পৃথক করা হয় তা নির্দিষ্ট করতে দেয়। আসুন প্রথমে একটি ফাইল তৈরি করি যা এই awk ভেরিয়েবলের কাজকর্ম প্রদর্শন করবে।
$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412$ awk 'BEGIN{FS=' '; RS=''} {print $1,$3}' new.txtএই কমান্ডটি নথিটি বিশ্লেষণ করবে এবং দুই ব্যক্তির নাম এবং ঠিকানা বের করবে।
17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
লিনাক্সে awk কমান্ড আমাদের এনভায়রন ভেরিয়েবল ব্যবহার করে পরিবেশের ভেরিয়েবল সহজে মুদ্রণ করতে দেয়। PATH ভেরিয়েবলের বিষয়বস্তু মুদ্রণের জন্য এটি কীভাবে ব্যবহার করতে হয় তা নিচের কমান্ডটি দেখায়।
$ awk 'BEGIN{ print ENVIRON['PATH'] }'আপনি এনভিরন ভেরিয়েবলের যুক্তি প্রতিস্থাপন করে যেকোনো পরিবেশের ভেরিয়েবলের বিষয়বস্তু মুদ্রণ করতে পারেন। নিচের কমান্ডটি পরিবেশের পরিবর্তনশীল হোমের মান প্রিন্ট করে।
$ awk 'BEGIN{ print ENVIRON['HOME'] }'18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
Awk কমান্ড আমাদের আউটপুট থেকে নির্দিষ্ট লাইন বাদ দিতে দেয়। নিম্নলিখিত কমান্ড আমাদের রেফারেন্স ফাইল ব্যবহার করে এটি প্রদর্শন করবে test.txt ।
$ awk -F':' '{$2=''; print}' test.txtএই কমান্ডটি আমাদের ফাইলের দ্বিতীয় কলামটি বাদ দেবে, যেখানে প্রতিটি দেশের রাজধানীর নাম থাকবে। পরবর্তী কমান্ডে দেখানো হিসাবে আপনি একাধিক ক্ষেত্রও বাদ দিতে পারেন।
$ awk -F':' '{$2='';$3='';print}' test.txt19. খালি লাইন সরান
কখনও কখনও ডেটাতে অনেকগুলি ফাঁকা লাইন থাকতে পারে। আপনি খালি লাইনগুলি খুব সহজে অপসারণ করতে awk কমান্ড ব্যবহার করতে পারেন। অনুশীলনে এটি কীভাবে কাজ করে তা দেখতে পরবর্তী কমান্ডটি দেখুন।
$ awk '/^[ ]*$/{next}{print}' new.txtআমরা new.txt ফাইল থেকে সব খালি লাইন সরিয়ে দিয়েছি একটি সাধারণ রেগুলার এক্সপ্রেশন এবং একটি awk অন্তর্নির্মিত যা পরবর্তী বলা হয়।
20. ট্রাইলিং হোয়াইটস্পেস সরান
অনেক লিনাক্স কমান্ডের আউটপুটে পিছনের হোয়াইটস্পেস থাকে। আমরা লিনাক্সে awk কমান্ড ব্যবহার করতে পারি যেমন স্পেস এবং ট্যাব এর মত হোয়াইটস্পেস অপসারণ করতে। Awk ব্যবহার করে এই ধরনের সমস্যাগুলি কীভাবে মোকাবেলা করতে হয় তা দেখতে নিচের কমান্ডটি দেখুন।
$ awk '{sub(/[ ]*$/, '');print}' new.txt test.txtআমাদের রেফারেন্স ফাইলগুলিতে কিছু পিছনের হোয়াইটস্পেস যুক্ত করুন এবং যাচাই করুন যে সেগুলি সফলভাবে সরানো হয়েছে কি না। এটি আমার মেশিনে এটি সফলভাবে করেছে।
21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
আমরা একটি সাধারণ আউক ওয়ান-লাইনার ব্যবহার করে একটি লাইনে কতগুলি ক্ষেত্র আছে তা সহজেই পরীক্ষা করতে পারি। এটি করার অনেক উপায় আছে, কিন্তু আমরা এই কাজের জন্য কিছু awk এর অন্তর্নির্মিত ভেরিয়েবল ব্যবহার করব। NR ভেরিয়েবল আমাদের লাইন নম্বর দেয় এবং NF ভেরিয়েবল ক্ষেত্রের সংখ্যা প্রদান করে।
$ awk '{print NR,'-->',NF}' test.txtএখন আমরা নিশ্চিত করতে পারি যে আমাদের প্রতি লাইনে কতগুলি ক্ষেত্র রয়েছে test.txt দলিল। যেহেতু এই ফাইলের প্রতিটি লাইনে 5 টি ক্ষেত্র রয়েছে, তাই আমরা আশ্বস্ত হলাম যে কমান্ডটি প্রত্যাশা অনুযায়ী কাজ করছে।
22. বর্তমান ফাইলের নাম যাচাই করুন
Awk পরিবর্তনশীল FILENAME বর্তমান ইনপুট ফাইলের নাম যাচাই করার জন্য ব্যবহৃত হয়। আমরা একটি সাধারণ উদাহরণ ব্যবহার করে এটি কিভাবে কাজ করে তা প্রদর্শন করছি। যাইহোক, এটি এমন পরিস্থিতিতে কাজে লাগতে পারে যেখানে ফাইলের নাম স্পষ্টভাবে জানা যায় না, অথবা একাধিক ইনপুট ফাইল থাকে।
$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txtউপরের কমান্ডগুলি ফাইলের নাম awk প্রিন্ট করে প্রতিবার ইনপুট ফাইলগুলির একটি নতুন লাইন প্রসেস করার সময় কাজ করছে।
23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
নিচের উদাহরণটি দেখাবে কিভাবে আমরা awk কমান্ড দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করতে পারি। যেহেতু প্রচুর সংখ্যক লিনাক্স সিস্টেম অ্যাডমিন রিপোর্ট তৈরির জন্য awk ব্যবহার করে, তাই এটি তাদের জন্য খুবই উপকারী।
$ awk '{print 'Processing Record - ',NR;} END {print ' Total Records Processed:', NR;}' test.txtআমি প্রায়ই আমার কাজগুলির একটি পরিষ্কার ওভারভিউ থাকার জন্য এই awk স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।
24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।
$ echo 'A random text string...' | awk '{ print length($0); }'$ awk '{ print length($0); }' /etc/passwdউপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।
25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।
$ echo 'A random text string...' | awk 'length($0) > 10'$ awk '{ length($0) > 5; }' /etc/passwdআপনি আপনার প্রয়োজনীয়তার উপর ভিত্তি করে কমান্ডটি টুইক করার জন্য আরও বিকল্প এবং/অথবা যুক্তি দিতে পারেন।
26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
লিনাক্সে নিম্নলিখিত awk কমান্ড প্রদত্ত ইনপুটে লাইন, অক্ষর এবং শব্দের সংখ্যা প্রিন্ট করে। এটি এই অপারেশন করার জন্য NR ভেরিয়েবলের পাশাপাশি কিছু মৌলিক গাণিতিক ব্যবহার করে।
$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'এটি দেখায় যে ইনপুট স্ট্রিংয়ে 1 টি লাইন, 5 টি শব্দ এবং ঠিক 24 টি অক্ষর রয়েছে।
27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
আমরা ডকুমেন্টের শব্দের ফ্রিকোয়েন্সি গণনা করার জন্য অ্যাসোসিয়েটিভ অ্যারে এবং ফর লুপ ফর অ্যাওকে একত্রিত করতে পারি। নিচের কমান্ডটি একটু জটিল মনে হতে পারে, কিন্তু একবার আপনি মৌলিক গঠনগুলি পরিষ্কারভাবে বুঝতে পারলে এটি মোটামুটি সহজ।
$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txtআপনার যদি ওয়ান-লাইনার স্নিপেটে সমস্যা হয়, তাহলে নিচের কোডটি একটি নতুন ফাইলে অনুলিপি করুন এবং উৎসটি ব্যবহার করে এটি চালান।
$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }তারপর এটি ব্যবহার করে চালান -ফ বিকল্প
$ awk -f frequency.awk test.txt28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
Awk কমান্ডটি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন সমস্ত ফাইলের নাম পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। নিম্নোক্ত কমান্ডটি ব্যাখ্যা করে কিভাবে একটি ডিরেক্টরিতে সমস্ত .MP3 ফাইলের নাম পরিবর্তন করে .mp3 ফাইলগুলিতে awk ব্যবহার করতে হয়।
$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ', $0, tolower($0)) }' | shপ্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।
29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।
$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।
30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
Awk ফাংশন log () একটি সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে। যাইহোক, এটি শুধুমাত্র ইতিবাচক সংখ্যার সাথে কাজ করবে, তাই ব্যবহারকারীদের ইনপুট যাচাই করার বিষয়ে সচেতন থাকুন। অন্যথায় কেউ আপনার অক প্রোগ্রামগুলি ভেঙে দিতে পারে এবং সিস্টেম রিসোর্সে অবাধ অ্যাক্সেস পেতে পারে।
$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'আপনার 36 এর লগারিদম দেখতে হবে এবং যাচাই করতে হবে যে 0 এর লগারিদম অসীম এবং নেতিবাচক মানের লগ হল 'নট এ নাম্বার' বা ন্যান।
31. একটি সংখ্যার সূচক মুদ্রণ করুন
সূচকীয় os a সংখ্যা n e^n এর মান প্রদান করে। এটি সাধারণত অক স্ক্রিপ্টে ব্যবহৃত হয় যা বড় সংখ্যা বা জটিল গাণিতিক যুক্তি নিয়ে কাজ করে। আমরা অন্তর্নির্মিত awk ফাংশন exp () ব্যবহার করে একটি সংখ্যার সূচক তৈরি করতে পারি।
$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'যাইহোক, awk অত্যন্ত বড় সংখ্যার জন্য সূচকীয় গণনা করতে পারে না। আপনি C- এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে এই ধরনের গণনা করা উচিত এবং আপনার awk স্ক্রিপ্টগুলিতে মানটি খাওয়ান।
32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
আমরা লিনাক্সে awk কমান্ড ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে পারি। এই সংখ্যাগুলি 0 থেকে 1 এর মধ্যে থাকবে, কিন্তু কখনোই 0 বা 1. হবে না। আপনি একটি বড় মানের এলোমেলো মান পেতে ফলাফল সংখ্যার সাথে একটি নির্দিষ্ট মান গুণ করতে পারেন।
$ awk 'BEGIN{ print rand(); print rand()*99 }'র্যান্ড () ফাংশন কোন যুক্তি প্রয়োজন হয় না। উপরন্তু, এই ফাংশন দ্বারা উৎপন্ন সংখ্যাগুলি সঠিকভাবে এলোমেলো নয় বরং ছদ্ম-এলোমেলো। তাছাড়া, এই সংখ্যাগুলি রান থেকে রান পর্যন্ত ভবিষ্যদ্বাণী করা বেশ সহজ। সুতরাং আপনার সংবেদনশীল গণনার জন্য তাদের উপর নির্ভর করা উচিত নয়।
33. লাল রঙের কম্পাইলার সতর্কতা
আধুনিক লিনাক্স কম্পাইলাররা সতর্ক করে দেবে যদি আপনার কোড ভাষার মান বজায় না রাখে বা ত্রুটি থাকে যা প্রোগ্রাম চালানো বন্ধ করে না। নিম্নলিখিত awk কমান্ড লাল রঙে একটি কম্পাইলার দ্বারা উত্পন্ন সতর্কতা লাইন মুদ্রণ করবে।
$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।
34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।
$ awk '/UUID/ {print $0}' /etc/fstabএই কমান্ড টেক্সট UUID এর জন্য অনুসন্ধান করে /etc/fstab awk প্যাটার্ন ব্যবহার করে ফাইল। এটি ফাইল থেকে একটি মন্তব্য প্রদান করে যা আমরা আগ্রহী না
$ awk '/^UUID/ {print $1}' /etc/fstabএটি প্রথম ক্ষেত্রে আউটপুট সীমাবদ্ধ করে। সুতরাং আমরা শুধুমাত্র UUID নম্বর পাই।
35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
বিভিন্ন লিনাক্স কার্নেল ছবি ব্যবহার করে বিভিন্ন লিনাক্স বিতরণ । আমরা সহজেই সঠিক কার্নেল চিত্রটি মুদ্রণ করতে পারি যার উপর আমাদের সিস্টেম awk ব্যবহার করার উপর ভিত্তি করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে নিম্নলিখিত কমান্ডটি দেখুন।
$ uname -a | awk '{print $3}'আমরা প্রথমে uname কমান্ড দিয়ে দিয়েছি -প্রতি বিকল্প এবং তারপরে এই ডেটাটি awk এ পাইপ করুন। তারপর আমরা awk ব্যবহার করে কার্নেল ইমেজের সংস্করণ তথ্য বের করেছি।
36. লাইনের আগে লাইন নম্বর যোগ করুন
ব্যবহারকারীরা এমন টেক্সট ফাইলের মুখোমুখি হতে পারেন যা প্রায়শই লাইন নম্বর ধারণ করে না। ভাগ্যক্রমে, আপনি সহজেই লিনাক্সে awk কমান্ড ব্যবহার করে একটি ফাইলে লাইন নম্বর যুক্ত করতে পারেন। বাস্তব জীবনে এটি কীভাবে কাজ করে তা দেখতে নীচের উদাহরণটি দেখুন।
$ awk '{ print FNR '. ' $0 ;next}{print}' test.txtউপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print $1 }' test.txt | sortপরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print $1 }' /etc/passwd | sortসাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awkযদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --helpআপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --versionভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও- ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও- করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাওউত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।
সর্বশেষ পোস্ট
অ্যান্ড্রয়েডঅ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস
উইন্ডোজ ওএসস্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন
অ্যান্ড্রয়েডদ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস
উইন্ডোজ ওএসআপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার
অবশ্যই পরুন
লিনাক্সউবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন
লিনাক্সউবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম
লিনাক্সকিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন
লিনাক্সরেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার
সম্পর্কিত পোস্ট
কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন
উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন
কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে
কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন
কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন
লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন
উপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।
37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
আমরা সব লাইনের সাজানো তালিকা মুদ্রণ করতে awk ব্যবহার করতে পারি। নিচের কমান্ডগুলো আমাদের test.txt- এ সব দেশের নাম সাজানো ক্রমে প্রিন্ট করে।
$ awk -F ':' '{ print }' test.txt | sort
পরবর্তী কমান্ডটি সমস্ত ব্যবহারকারীর লগইন নাম মুদ্রণ করবে /etc/passwd ফাইল
$ awk -F ':' '{ print }' /etc/passwd | sort
সাজানোর কমান্ড পরিবর্তন করে আপনি সহজেই সাজানোর ক্রম পরিবর্তন করতে পারেন।
38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
ম্যানুয়াল পৃষ্ঠায় সমস্ত উপলব্ধ বিকল্পের পাশাপাশি awk কমান্ডের বিস্তারিত তথ্য রয়েছে। যারা awk কমান্ড পুঙ্খানুপুঙ্খভাবে আয়ত্ত করতে চান তাদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
$ man awk
যদি আপনি জটিল awk বৈশিষ্ট্য শিখতে চান, তাহলে এটি আপনার জন্য অনেক সাহায্য করবে। যখনই আপনি কোন সমস্যায় আটকে পড়বেন তখন এই ডকুমেন্টেশনটি দেখুন।
39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
সাহায্য পৃষ্ঠায় সম্ভাব্য সমস্ত কমান্ড-লাইন আর্গুমেন্টের সংক্ষিপ্ত তথ্য রয়েছে। আপনি নিম্নলিখিত কমান্ডগুলির মধ্যে একটি ব্যবহার করে awk এর জন্য সাহায্য নির্দেশিকা আহ্বান করতে পারেন।
$ awk -h $ awk --help
আপনি যদি awk এর জন্য সমস্ত উপলব্ধ বিকল্পগুলির একটি দ্রুত ওভারভিউ চান তবে এই পৃষ্ঠাটি দেখুন।
40. মুদ্রণ সংস্করণ তথ্য
সংস্করণ তথ্য আমাদের একটি প্রোগ্রাম নির্মাণের তথ্য প্রদান করে। Awk এর সংস্করণ পৃষ্ঠায় এর কপিরাইট, সংকলন সরঞ্জাম ইত্যাদি তথ্য রয়েছে। আপনি নিম্নলিখিত awk কমান্ডগুলির একটি ব্যবহার করে এই তথ্য দেখতে পারেন।
$ awk -V $ awk --version
ভাবনার সমাপ্তি
লিনাক্সে awk কমান্ড আমাদের ফাইল প্রসেসিং এবং সিস্টেম রক্ষণাবেক্ষণ সহ সব ধরণের কাজ করতে দেয়। এটি দৈনন্দিন কম্পিউটিং কাজগুলি খুব সহজে পরিচালনা করার জন্য বিভিন্ন ধরণের অপারেশন সরবরাহ করে। আমাদের সম্পাদকরা এই নির্দেশিকাটি 40 টি সহায়ক awk কমান্ড দিয়ে সংকলিত করেছেন যা পাঠ্য ম্যানিপুলেশন বা প্রশাসনের জন্য ব্যবহার করা যেতে পারে। যেহেতু AWK নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।
- ট্যাগ
- প্রোগ্রামিং টুলস
- সিস্টেম ইউটিলিটি টুলস
7 টি মন্তব্য
- রমেশ এপ্রিল 24, 2020 07:48 এ
সেরা sed বা awk কি?
উত্তর দাও- লাউহাব জানুয়ারী 6, 2021 04:41 এ
উভয়ই সেরা:
এক মাস যুক্ত করার জন্য এক্সেল সূত্র
- সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)
- সাধারণ কাজের জন্য awk আরো ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।
যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে
উত্তর দাও - ডিসি জুলাই 16, 2021 09:17 এ
উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
উত্তর দাও
awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়
- লাউহাব জানুয়ারী 6, 2021 04:41 এ
- আহমেদ এপ্রিল 16, 2020 13:24 এ
ওহে,
উত্তর দাও
উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।
এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।
উত্তর দাও
- রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ
- স্টেফান এপ্রিল 6, 2020 10:54 এ
চমৎকার উদাহরণ। এই জন্য ধন্যবাদ
উত্তর দাও - করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ
চমৎকার awk উদাহরণ
উত্তর দাও
উত্তর দিন উত্তর বাতিল করুন
মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।