A-Z কমান্ড

40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড

40 Practical Useful Awk Command Linux

বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7

বিষয়বস্তু

  1. AWK প্রোগ্রাম বোঝা
  2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
    1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
    2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
    3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
    4. 4. END স্টেটমেন্ট ব্যবহার করুন
    5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
    6. 6. ফাইল থেকে তথ্য বের করুন
    7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
    8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
    9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
    10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
    11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
    12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
    13. 13. If Construct ব্যবহার করে
    14. 14. If-Else Constructs ব্যবহার করে
    15. 15. মাঠের প্রস্থ সেট করুন
    16. 16. রেকর্ড বিভাজক সেট করুন
    17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
    18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
    19. 19. খালি লাইন সরান
    20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
    21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
    22. 22. বর্তমান ফাইলের নাম যাচাই করুন
    23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
    24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
    25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
    26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
    27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
    28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
    29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
    30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
    31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
    32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
    33. 33. লাল রঙের কম্পাইলার সতর্কতা
    34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
    35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
    36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
    37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
    38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
    39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
    40. 40. মুদ্রণ সংস্করণ তথ্য
  3. ভাবনার সমাপ্তি

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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

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 , , }'

বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

awk মধ্যে ক্ষেত্র প্রস্থ

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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

awk প্রক্রিয়াকৃত লাইনের সংখ্যা

24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন


Awk language length () নামক একটি সুবিধাজনক ফাংশন প্রদান করে যা আমাদেরকে বলে যে রেকর্ডে কতগুলো অক্ষর আছে। এটি বেশ কয়েকটি পরিস্থিতিতে খুব দরকারী। এটি কীভাবে কাজ করে তা দেখতে নিচের উদাহরণটি দ্রুত দেখুন।

$ echo 'A random text string...' | awk '{ print length(
বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7

বিষয়বস্তু

  1. AWK প্রোগ্রাম বোঝা
  2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
    1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
    2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
    3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
    4. 4. END স্টেটমেন্ট ব্যবহার করুন
    5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
    6. 6. ফাইল থেকে তথ্য বের করুন
    7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
    8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
    9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
    10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
    11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
    12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
    13. 13. If Construct ব্যবহার করে
    14. 14. If-Else Constructs ব্যবহার করে
    15. 15. মাঠের প্রস্থ সেট করুন
    16. 16. রেকর্ড বিভাজক সেট করুন
    17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
    18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
    19. 19. খালি লাইন সরান
    20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
    21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
    22. 22. বর্তমান ফাইলের নাম যাচাই করুন
    23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
    24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
    25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
    26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
    27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
    28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
    29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
    30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
    31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
    32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
    33. 33. লাল রঙের কম্পাইলার সতর্কতা
    34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
    35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
    36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
    37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
    38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
    39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
    40. 40. মুদ্রণ সংস্করণ তথ্য
  3. ভাবনার সমাপ্তি

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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

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}'

বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

awk মধ্যে ক্ষেত্র প্রস্থ

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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

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.txt

28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

লিনাক্স awk কমান্ডে sqrt ফাংশন

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 ব্যবহার করে।

awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

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 টি মন্তব্য

    1. রমেশ এপ্রিল 24, 2020 07:48 এ

      সেরা sed বা awk কি?

      উত্তর দাও
      • লাউহাব জানুয়ারী 6, 2021 04:41 এ

        উভয়ই সেরা:

        - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

        - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

        যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

        উত্তর দাও
      • ডিসি জুলাই 16, 2021 09:17 এ

        উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
        awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

        উত্তর দাও
    2. আহমেদ এপ্রিল 16, 2020 13:24 এ

      ওহে,
      উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

      উত্তর দাও
      • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

        ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

        এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

        উত্তর দাও
    3. স্টেফান এপ্রিল 6, 2020 10:54 এ

      চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

      উত্তর দাও
    4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

      চমৎকার awk উদাহরণ

      উত্তর দাও

    উত্তর দিন উত্তর বাতিল করুন

    মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

    পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

    spot_img

    সর্বশেষ পোস্ট

    অ্যান্ড্রয়েড

    অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

    উইন্ডোজ ওএস

    স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

    অ্যান্ড্রয়েড

    দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

    উইন্ডোজ ওএস

    আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

    অবশ্যই পরুন

    লিনাক্স

    উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

    লিনাক্স

    উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

    লিনাক্স

    কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

    লিনাক্স

    রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

    সম্পর্কিত পোস্ট

    কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

    উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

    কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

    কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

    কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

    লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

    ); }'
    $ awk '{ print length(
    বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7

    বিষয়বস্তু

    1. AWK প্রোগ্রাম বোঝা
    2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
      1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
      2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
      3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
      4. 4. END স্টেটমেন্ট ব্যবহার করুন
      5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
      6. 6. ফাইল থেকে তথ্য বের করুন
      7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
      8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
      9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
      10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
      11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
      12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
      13. 13. If Construct ব্যবহার করে
      14. 14. If-Else Constructs ব্যবহার করে
      15. 15. মাঠের প্রস্থ সেট করুন
      16. 16. রেকর্ড বিভাজক সেট করুন
      17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
      18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
      19. 19. খালি লাইন সরান
      20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
      21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
      22. 22. বর্তমান ফাইলের নাম যাচাই করুন
      23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
      24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
      25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
      26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
      27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
      28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
      29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
      30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
      31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
      32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
      33. 33. লাল রঙের কম্পাইলার সতর্কতা
      34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
      35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
      36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
      37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
      38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
      39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
      40. 40. মুদ্রণ সংস্করণ তথ্য
    3. ভাবনার সমাপ্তি

    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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

    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}'

    বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

    awk মধ্যে ক্ষেত্র প্রস্থ

    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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

    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.txt

    28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

    লিনাক্স awk কমান্ডে sqrt ফাংশন

    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 ব্যবহার করে।

    awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

    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 টি মন্তব্য

      1. রমেশ এপ্রিল 24, 2020 07:48 এ

        সেরা sed বা awk কি?

        উত্তর দাও
        • লাউহাব জানুয়ারী 6, 2021 04:41 এ

          উভয়ই সেরা:

          - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

          - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

          যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

          উত্তর দাও
        • ডিসি জুলাই 16, 2021 09:17 এ

          উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
          awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

          উত্তর দাও
      2. আহমেদ এপ্রিল 16, 2020 13:24 এ

        ওহে,
        উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

        উত্তর দাও
        • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

          ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

          এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

          উত্তর দাও
      3. স্টেফান এপ্রিল 6, 2020 10:54 এ

        চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

        উত্তর দাও
      4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

        চমৎকার awk উদাহরণ

        উত্তর দাও

      উত্তর দিন উত্তর বাতিল করুন

      মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

      পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

      spot_img

      সর্বশেষ পোস্ট

      অ্যান্ড্রয়েড

      অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

      উইন্ডোজ ওএস

      স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

      অ্যান্ড্রয়েড

      দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

      উইন্ডোজ ওএস

      আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

      অবশ্যই পরুন

      লিনাক্স

      উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

      লিনাক্স

      উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

      লিনাক্স

      কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

      লিনাক্স

      রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

      সম্পর্কিত পোস্ট

      কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

      উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

      কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

      কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

      কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

      লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

      ); }' /etc/passwd

      উপরের কমান্ডটি ইনপুট স্ট্রিং বা ফাইলের প্রতিটি লাইনে উপস্থিত অক্ষরের মোট সংখ্যা মুদ্রণ করবে।

      25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন


      আমরা উপরের কমান্ডে কিছু শর্ত জুড়ে দিতে পারি এবং এটি কেবল সেই লাইনগুলি মুদ্রণ করতে পারি যা পূর্বনির্ধারিত দৈর্ঘ্যের চেয়ে বড়। এটি একটি দরকারী যখন আপনি ইতিমধ্যে একটি নির্দিষ্ট রেকর্ড দৈর্ঘ্য সম্পর্কে একটি ধারণা আছে।

      $ echo 'A random text string...' | awk 'length(
      বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7

      বিষয়বস্তু

      1. AWK প্রোগ্রাম বোঝা
      2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
        1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
        2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
        3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
        4. 4. END স্টেটমেন্ট ব্যবহার করুন
        5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
        6. 6. ফাইল থেকে তথ্য বের করুন
        7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
        8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
        9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
        10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
        11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
        12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
        13. 13. If Construct ব্যবহার করে
        14. 14. If-Else Constructs ব্যবহার করে
        15. 15. মাঠের প্রস্থ সেট করুন
        16. 16. রেকর্ড বিভাজক সেট করুন
        17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
        18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
        19. 19. খালি লাইন সরান
        20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
        21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
        22. 22. বর্তমান ফাইলের নাম যাচাই করুন
        23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
        24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
        25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
        26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
        27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
        28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
        29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
        30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
        31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
        32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
        33. 33. লাল রঙের কম্পাইলার সতর্কতা
        34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
        35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
        36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
        37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
        38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
        39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
        40. 40. মুদ্রণ সংস্করণ তথ্য
      3. ভাবনার সমাপ্তি

      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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

      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}'

      বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

      awk মধ্যে ক্ষেত্র প্রস্থ

      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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

      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.txt

      28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

      লিনাক্স awk কমান্ডে sqrt ফাংশন

      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 ব্যবহার করে।

      awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

      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 টি মন্তব্য

        1. রমেশ এপ্রিল 24, 2020 07:48 এ

          সেরা sed বা awk কি?

          উত্তর দাও
          • লাউহাব জানুয়ারী 6, 2021 04:41 এ

            উভয়ই সেরা:

            - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

            - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

            যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

            উত্তর দাও
          • ডিসি জুলাই 16, 2021 09:17 এ

            উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
            awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

            উত্তর দাও
        2. আহমেদ এপ্রিল 16, 2020 13:24 এ

          ওহে,
          উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

          উত্তর দাও
          • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

            ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

            এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

            উত্তর দাও
        3. স্টেফান এপ্রিল 6, 2020 10:54 এ

          চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

          উত্তর দাও
        4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

          চমৎকার awk উদাহরণ

          উত্তর দাও

        উত্তর দিন উত্তর বাতিল করুন

        মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

        পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

        spot_img

        সর্বশেষ পোস্ট

        অ্যান্ড্রয়েড

        অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

        উইন্ডোজ ওএস

        স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

        অ্যান্ড্রয়েড

        দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

        উইন্ডোজ ওএস

        আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

        অবশ্যই পরুন

        লিনাক্স

        উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

        লিনাক্স

        উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

        লিনাক্স

        কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

        লিনাক্স

        রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

        সম্পর্কিত পোস্ট

        কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

        উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

        কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

        কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

        কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

        লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

        ) > 10'
        $ awk '{ length(
        বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7

        বিষয়বস্তু

        1. AWK প্রোগ্রাম বোঝা
        2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
          1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
          2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
          3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
          4. 4. END স্টেটমেন্ট ব্যবহার করুন
          5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
          6. 6. ফাইল থেকে তথ্য বের করুন
          7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
          8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
          9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
          10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
          11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
          12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
          13. 13. If Construct ব্যবহার করে
          14. 14. If-Else Constructs ব্যবহার করে
          15. 15. মাঠের প্রস্থ সেট করুন
          16. 16. রেকর্ড বিভাজক সেট করুন
          17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
          18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
          19. 19. খালি লাইন সরান
          20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
          21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
          22. 22. বর্তমান ফাইলের নাম যাচাই করুন
          23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
          24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
          25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
          26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
          27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
          28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
          29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
          30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
          31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
          32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
          33. 33. লাল রঙের কম্পাইলার সতর্কতা
          34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
          35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
          36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
          37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
          38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
          39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
          40. 40. মুদ্রণ সংস্করণ তথ্য
        3. ভাবনার সমাপ্তি

        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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

        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}'

        বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

        awk মধ্যে ক্ষেত্র প্রস্থ

        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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

        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.txt

        28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

        লিনাক্স awk কমান্ডে sqrt ফাংশন

        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 ব্যবহার করে।

        awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

        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 টি মন্তব্য

          1. রমেশ এপ্রিল 24, 2020 07:48 এ

            সেরা sed বা awk কি?

            উত্তর দাও
            • লাউহাব জানুয়ারী 6, 2021 04:41 এ

              উভয়ই সেরা:

              - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

              - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

              যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

              উত্তর দাও
            • ডিসি জুলাই 16, 2021 09:17 এ

              উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
              awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

              উত্তর দাও
          2. আহমেদ এপ্রিল 16, 2020 13:24 এ

            ওহে,
            উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

            উত্তর দাও
            • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

              ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

              এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

              উত্তর দাও
          3. স্টেফান এপ্রিল 6, 2020 10:54 এ

            চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

            উত্তর দাও
          4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

            চমৎকার awk উদাহরণ

            উত্তর দাও

          উত্তর দিন উত্তর বাতিল করুন

          মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

          পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

          spot_img

          সর্বশেষ পোস্ট

          অ্যান্ড্রয়েড

          অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

          উইন্ডোজ ওএস

          স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

          অ্যান্ড্রয়েড

          দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

          উইন্ডোজ ওএস

          আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

          অবশ্যই পরুন

          লিনাক্স

          উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

          লিনাক্স

          উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

          লিনাক্স

          কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

          লিনাক্স

          রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

          সম্পর্কিত পোস্ট

          কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

          উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

          কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

          কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

          কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

          লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

          ) > 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.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

          বিষয়বস্তু

          1. AWK প্রোগ্রাম বোঝা
          2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
            1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
            2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
            3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
            4. 4. END স্টেটমেন্ট ব্যবহার করুন
            5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
            6. 6. ফাইল থেকে তথ্য বের করুন
            7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
            8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
            9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
            10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
            11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
            12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
            13. 13. If Construct ব্যবহার করে
            14. 14. If-Else Constructs ব্যবহার করে
            15. 15. মাঠের প্রস্থ সেট করুন
            16. 16. রেকর্ড বিভাজক সেট করুন
            17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
            18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
            19. 19. খালি লাইন সরান
            20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
            21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
            22. 22. বর্তমান ফাইলের নাম যাচাই করুন
            23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
            24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
            25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
            26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
            27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
            28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
            29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
            30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
            31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
            32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
            33. 33. লাল রঙের কম্পাইলার সতর্কতা
            34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
            35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
            36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
            37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
            38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
            39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
            40. 40. মুদ্রণ সংস্করণ তথ্য
          3. ভাবনার সমাপ্তি

          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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

          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}'

          বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

          awk মধ্যে ক্ষেত্র প্রস্থ

          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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

          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.txt

          28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

          লিনাক্স awk কমান্ডে sqrt ফাংশন

          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 ব্যবহার করে।

          awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

          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 টি মন্তব্য

            1. রমেশ এপ্রিল 24, 2020 07:48 এ

              সেরা sed বা awk কি?

              উত্তর দাও
              • লাউহাব জানুয়ারী 6, 2021 04:41 এ

                উভয়ই সেরা:

                - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

                - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

                যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

                উত্তর দাও
              • ডিসি জুলাই 16, 2021 09:17 এ

                উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
                awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

                উত্তর দাও
            2. আহমেদ এপ্রিল 16, 2020 13:24 এ

              ওহে,
              উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

              উত্তর দাও
              • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

                ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

                এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

                উত্তর দাও
            3. স্টেফান এপ্রিল 6, 2020 10:54 এ

              চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

              উত্তর দাও
            4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

              চমৎকার awk উদাহরণ

              উত্তর দাও

            উত্তর দিন উত্তর বাতিল করুন

            মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

            পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

            spot_img

            সর্বশেষ পোস্ট

            অ্যান্ড্রয়েড

            অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

            উইন্ডোজ ওএস

            স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

            অ্যান্ড্রয়েড

            দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

            উইন্ডোজ ওএস

            আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

            অবশ্যই পরুন

            লিনাক্স

            উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

            লিনাক্স

            উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

            লিনাক্স

            কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

            লিনাক্স

            রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

            সম্পর্কিত পোস্ট

            কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

            উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

            কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

            কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

            কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

            লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

            , tolower(
            বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7

            বিষয়বস্তু

            1. AWK প্রোগ্রাম বোঝা
            2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
              1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
              2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
              3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
              4. 4. END স্টেটমেন্ট ব্যবহার করুন
              5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
              6. 6. ফাইল থেকে তথ্য বের করুন
              7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
              8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
              9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
              10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
              11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
              12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
              13. 13. If Construct ব্যবহার করে
              14. 14. If-Else Constructs ব্যবহার করে
              15. 15. মাঠের প্রস্থ সেট করুন
              16. 16. রেকর্ড বিভাজক সেট করুন
              17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
              18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
              19. 19. খালি লাইন সরান
              20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
              21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
              22. 22. বর্তমান ফাইলের নাম যাচাই করুন
              23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
              24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
              25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
              26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
              27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
              28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
              29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
              30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
              31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
              32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
              33. 33. লাল রঙের কম্পাইলার সতর্কতা
              34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
              35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
              36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
              37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
              38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
              39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
              40. 40. মুদ্রণ সংস্করণ তথ্য
            3. ভাবনার সমাপ্তি

            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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

            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}'

            বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

            awk মধ্যে ক্ষেত্র প্রস্থ

            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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

            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.txt

            28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

            লিনাক্স awk কমান্ডে sqrt ফাংশন

            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 ব্যবহার করে।

            awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

            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 টি মন্তব্য

              1. রমেশ এপ্রিল 24, 2020 07:48 এ

                সেরা sed বা awk কি?

                উত্তর দাও
                • লাউহাব জানুয়ারী 6, 2021 04:41 এ

                  উভয়ই সেরা:

                  - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

                  - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

                  যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

                  উত্তর দাও
                • ডিসি জুলাই 16, 2021 09:17 এ

                  উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
                  awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

                  উত্তর দাও
              2. আহমেদ এপ্রিল 16, 2020 13:24 এ

                ওহে,
                উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

                উত্তর দাও
                • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

                  ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

                  এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

                  উত্তর দাও
              3. স্টেফান এপ্রিল 6, 2020 10:54 এ

                চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

                উত্তর দাও
              4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

                চমৎকার awk উদাহরণ

                উত্তর দাও

              উত্তর দিন উত্তর বাতিল করুন

              মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

              পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

              spot_img

              সর্বশেষ পোস্ট

              অ্যান্ড্রয়েড

              অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

              উইন্ডোজ ওএস

              স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

              অ্যান্ড্রয়েড

              দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

              উইন্ডোজ ওএস

              আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

              অবশ্যই পরুন

              লিনাক্স

              উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

              লিনাক্স

              উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

              লিনাক্স

              কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

              লিনাক্স

              রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

              সম্পর্কিত পোস্ট

              কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

              উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

              কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

              কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

              কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

              লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

              )) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ',
              বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7

              বিষয়বস্তু

              1. AWK প্রোগ্রাম বোঝা
              2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
                1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
                2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
                3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
                4. 4. END স্টেটমেন্ট ব্যবহার করুন
                5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
                6. 6. ফাইল থেকে তথ্য বের করুন
                7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
                8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
                9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
                10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
                11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
                12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
                13. 13. If Construct ব্যবহার করে
                14. 14. If-Else Constructs ব্যবহার করে
                15. 15. মাঠের প্রস্থ সেট করুন
                16. 16. রেকর্ড বিভাজক সেট করুন
                17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
                18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
                19. 19. খালি লাইন সরান
                20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
                21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
                22. 22. বর্তমান ফাইলের নাম যাচাই করুন
                23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
                24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
                25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
                26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
                27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
                28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
                29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
                30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
                31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
                32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
                33. 33. লাল রঙের কম্পাইলার সতর্কতা
                34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
                35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
                36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
                37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
                38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
                39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
                40. 40. মুদ্রণ সংস্করণ তথ্য
              3. ভাবনার সমাপ্তি

              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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

              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}'

              বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

              awk মধ্যে ক্ষেত্র প্রস্থ

              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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

              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.txt

              28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

              লিনাক্স awk কমান্ডে sqrt ফাংশন

              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 ব্যবহার করে।

              awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

              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 টি মন্তব্য

                1. রমেশ এপ্রিল 24, 2020 07:48 এ

                  সেরা sed বা awk কি?

                  উত্তর দাও
                  • লাউহাব জানুয়ারী 6, 2021 04:41 এ

                    উভয়ই সেরা:

                    - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

                    - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

                    যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

                    উত্তর দাও
                  • ডিসি জুলাই 16, 2021 09:17 এ

                    উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
                    awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

                    উত্তর দাও
                2. আহমেদ এপ্রিল 16, 2020 13:24 এ

                  ওহে,
                  উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

                  উত্তর দাও
                  • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

                    ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

                    এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

                    উত্তর দাও
                3. স্টেফান এপ্রিল 6, 2020 10:54 এ

                  চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

                  উত্তর দাও
                4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

                  চমৎকার awk উদাহরণ

                  উত্তর দাও

                উত্তর দিন উত্তর বাতিল করুন

                মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

                পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

                spot_img

                সর্বশেষ পোস্ট

                অ্যান্ড্রয়েড

                অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

                উইন্ডোজ ওএস

                স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

                অ্যান্ড্রয়েড

                দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

                উইন্ডোজ ওএস

                আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

                অবশ্যই পরুন

                লিনাক্স

                উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

                লিনাক্স

                উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

                লিনাক্স

                কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

                লিনাক্স

                রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

                সম্পর্কিত পোস্ট

                কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

                উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

                কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

                কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

                কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

                লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

                , tolower(
                বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7

                বিষয়বস্তু

                1. AWK প্রোগ্রাম বোঝা
                2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
                  1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
                  2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
                  3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
                  4. 4. END স্টেটমেন্ট ব্যবহার করুন
                  5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
                  6. 6. ফাইল থেকে তথ্য বের করুন
                  7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
                  8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
                  9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
                  10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
                  11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
                  12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
                  13. 13. If Construct ব্যবহার করে
                  14. 14. If-Else Constructs ব্যবহার করে
                  15. 15. মাঠের প্রস্থ সেট করুন
                  16. 16. রেকর্ড বিভাজক সেট করুন
                  17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
                  18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
                  19. 19. খালি লাইন সরান
                  20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
                  21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
                  22. 22. বর্তমান ফাইলের নাম যাচাই করুন
                  23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
                  24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
                  25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
                  26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
                  27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
                  28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
                  29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
                  30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
                  31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
                  32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
                  33. 33. লাল রঙের কম্পাইলার সতর্কতা
                  34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
                  35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
                  36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
                  37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
                  38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
                  39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
                  40. 40. মুদ্রণ সংস্করণ তথ্য
                3. ভাবনার সমাপ্তি

                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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

                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}'

                বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

                awk মধ্যে ক্ষেত্র প্রস্থ

                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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

                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.txt

                28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

                লিনাক্স awk কমান্ডে sqrt ফাংশন

                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 ব্যবহার করে।

                awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

                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 টি মন্তব্য

                  1. রমেশ এপ্রিল 24, 2020 07:48 এ

                    সেরা sed বা awk কি?

                    উত্তর দাও
                    • লাউহাব জানুয়ারী 6, 2021 04:41 এ

                      উভয়ই সেরা:

                      - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

                      - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

                      যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

                      উত্তর দাও
                    • ডিসি জুলাই 16, 2021 09:17 এ

                      উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
                      awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

                      উত্তর দাও
                  2. আহমেদ এপ্রিল 16, 2020 13:24 এ

                    ওহে,
                    উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

                    উত্তর দাও
                    • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

                      ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

                      এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

                      উত্তর দাও
                  3. স্টেফান এপ্রিল 6, 2020 10:54 এ

                    চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

                    উত্তর দাও
                  4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

                    চমৎকার awk উদাহরণ

                    উত্তর দাও

                  উত্তর দিন উত্তর বাতিল করুন

                  মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

                  পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

                  spot_img

                  সর্বশেষ পোস্ট

                  অ্যান্ড্রয়েড

                  অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

                  উইন্ডোজ ওএস

                  স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

                  অ্যান্ড্রয়েড

                  দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

                  উইন্ডোজ ওএস

                  আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

                  অবশ্যই পরুন

                  লিনাক্স

                  উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

                  লিনাক্স

                  উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

                  লিনাক্স

                  কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

                  লিনাক্স

                  রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

                  সম্পর্কিত পোস্ট

                  কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

                  উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

                  কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

                  কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

                  কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

                  লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

                  )) }' | sh

                  প্রথমত, আমরা .MP3 এক্সটেনশন দিয়ে কিছু ডেমো ফাইল তৈরি করেছি। দ্বিতীয় কমান্ড ব্যবহারকারীকে দেখায় যে নাম পরিবর্তন সফল হলে কি হবে। অবশেষে, শেষ কমান্ডটি লিনাক্সে mv কমান্ড ব্যবহার করে পুনnameনামকরণ অপারেশন করে।

                  29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন


                  AWK সংখ্যার হেরফের করার জন্য বেশ কয়েকটি অন্তর্নির্মিত ফাংশন সরবরাহ করে। তার মধ্যে একটি হল sqrt () ফাংশন। এটি একটি সি-এর মতো ফাংশন যা প্রদত্ত সংখ্যার বর্গমূল প্রদান করে। এটি সাধারণভাবে কীভাবে কাজ করে তা দেখতে পরবর্তী উদাহরণটি দ্রুত দেখুন।

                  $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

                  যেহেতু আপনি একটি negativeণাত্মক সংখ্যার বর্গমূল নির্ধারণ করতে পারবেন না, তাই আউটপুট sqrt (-12) এর জায়গায় 'nan' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

                  লিনাক্স awk কমান্ডে sqrt ফাংশন

                  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

                  বিষয়বস্তু

                  1. AWK প্রোগ্রাম বোঝা
                  2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
                    1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
                    2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
                    3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
                    4. 4. END স্টেটমেন্ট ব্যবহার করুন
                    5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
                    6. 6. ফাইল থেকে তথ্য বের করুন
                    7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
                    8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
                    9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
                    10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
                    11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
                    12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
                    13. 13. If Construct ব্যবহার করে
                    14. 14. If-Else Constructs ব্যবহার করে
                    15. 15. মাঠের প্রস্থ সেট করুন
                    16. 16. রেকর্ড বিভাজক সেট করুন
                    17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
                    18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
                    19. 19. খালি লাইন সরান
                    20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
                    21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
                    22. 22. বর্তমান ফাইলের নাম যাচাই করুন
                    23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
                    24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
                    25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
                    26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
                    27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
                    28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
                    29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
                    30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
                    31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
                    32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
                    33. 33. লাল রঙের কম্পাইলার সতর্কতা
                    34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
                    35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
                    36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
                    37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
                    38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
                    39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
                    40. 40. মুদ্রণ সংস্করণ তথ্য
                  3. ভাবনার সমাপ্তি

                  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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

                  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}'

                  বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

                  awk মধ্যে ক্ষেত্র প্রস্থ

                  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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

                  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.txt

                  28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

                  লিনাক্স awk কমান্ডে sqrt ফাংশন

                  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 ব্যবহার করে।

                  awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

                  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 টি মন্তব্য

                    1. রমেশ এপ্রিল 24, 2020 07:48 এ

                      সেরা sed বা awk কি?

                      উত্তর দাও
                      • লাউহাব জানুয়ারী 6, 2021 04:41 এ

                        উভয়ই সেরা:

                        - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

                        - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

                        যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

                        উত্তর দাও
                      • ডিসি জুলাই 16, 2021 09:17 এ

                        উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
                        awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

                        উত্তর দাও
                    2. আহমেদ এপ্রিল 16, 2020 13:24 এ

                      ওহে,
                      উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

                      উত্তর দাও
                      • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

                        ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

                        এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

                        উত্তর দাও
                    3. স্টেফান এপ্রিল 6, 2020 10:54 এ

                      চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

                      উত্তর দাও
                    4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

                      চমৎকার awk উদাহরণ

                      উত্তর দাও

                    উত্তর দিন উত্তর বাতিল করুন

                    মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

                    পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

                    spot_img

                    সর্বশেষ পোস্ট

                    অ্যান্ড্রয়েড

                    অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

                    উইন্ডোজ ওএস

                    স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

                    অ্যান্ড্রয়েড

                    দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

                    উইন্ডোজ ওএস

                    আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

                    অবশ্যই পরুন

                    লিনাক্স

                    উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

                    লিনাক্স

                    উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

                    লিনাক্স

                    কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

                    লিনাক্স

                    রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

                    সম্পর্কিত পোস্ট

                    কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

                    উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

                    কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

                    কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

                    কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

                    লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

                    'x1B[m';next;}{print}'

                    যদি আপনি বিশেষভাবে কম্পাইলার সতর্কতা চিহ্নিত করতে চান তবে এই কমান্ডটি কার্যকর। আপনি gcc ছাড়া অন্য কোন কম্পাইলারের সাথে এই কমান্ডটি ব্যবহার করতে পারেন, শুধু সেই নির্দিষ্ট কম্পাইলার প্রতিফলিত করার জন্য প্যাটার্ন /: সতর্কতা: / পরিবর্তন করতে ভুলবেন না।

                    34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন


                    UUID বা সর্বজনীন অনন্য শনাক্তকারী এটি এমন একটি সংখ্যা যা ব্যবহার করতে পারে যেমন সম্পদ লিনাক্স ফাইল সিস্টেম । আমরা নিচের লিনাক্স awk কমান্ড ব্যবহার করে কেবল আমাদের ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করতে পারি।

                    $ awk '/UUID/ {print 
                    বাড়ি A-Z কমান্ড 40 লিনাক্স এবং বিএসডিতে ব্যবহারিক এবং দরকারী awk কমান্ড দ্বারামেহেদী হাসান ভিতরেA-Z কমান্ডবৈশিষ্ট্যযুক্ত 1271 7

                    বিষয়বস্তু

                    1. AWK প্রোগ্রাম বোঝা
                    2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
                      1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
                      2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
                      3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
                      4. 4. END স্টেটমেন্ট ব্যবহার করুন
                      5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
                      6. 6. ফাইল থেকে তথ্য বের করুন
                      7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
                      8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
                      9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
                      10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
                      11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
                      12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
                      13. 13. If Construct ব্যবহার করে
                      14. 14. If-Else Constructs ব্যবহার করে
                      15. 15. মাঠের প্রস্থ সেট করুন
                      16. 16. রেকর্ড বিভাজক সেট করুন
                      17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
                      18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
                      19. 19. খালি লাইন সরান
                      20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
                      21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
                      22. 22. বর্তমান ফাইলের নাম যাচাই করুন
                      23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
                      24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
                      25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
                      26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
                      27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
                      28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
                      29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
                      30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
                      31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
                      32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
                      33. 33. লাল রঙের কম্পাইলার সতর্কতা
                      34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
                      35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
                      36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
                      37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
                      38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
                      39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
                      40. 40. মুদ্রণ সংস্করণ তথ্য
                    3. ভাবনার সমাপ্তি

                    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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

                    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}'

                    বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

                    awk মধ্যে ক্ষেত্র প্রস্থ

                    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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

                    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.txt

                    28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

                    লিনাক্স awk কমান্ডে sqrt ফাংশন

                    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 ব্যবহার করে।

                    awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

                    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 টি মন্তব্য

                      1. রমেশ এপ্রিল 24, 2020 07:48 এ

                        সেরা sed বা awk কি?

                        উত্তর দাও
                        • লাউহাব জানুয়ারী 6, 2021 04:41 এ

                          উভয়ই সেরা:

                          - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

                          - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

                          যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

                          উত্তর দাও
                        • ডিসি জুলাই 16, 2021 09:17 এ

                          উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
                          awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

                          উত্তর দাও
                      2. আহমেদ এপ্রিল 16, 2020 13:24 এ

                        ওহে,
                        উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

                        উত্তর দাও
                        • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

                          ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

                          এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

                          উত্তর দাও
                      3. স্টেফান এপ্রিল 6, 2020 10:54 এ

                        চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

                        উত্তর দাও
                      4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

                        চমৎকার awk উদাহরণ

                        উত্তর দাও

                      উত্তর দিন উত্তর বাতিল করুন

                      মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

                      পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

                      spot_img

                      সর্বশেষ পোস্ট

                      অ্যান্ড্রয়েড

                      অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

                      উইন্ডোজ ওএস

                      স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

                      অ্যান্ড্রয়েড

                      দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

                      উইন্ডোজ ওএস

                      আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

                      অবশ্যই পরুন

                      লিনাক্স

                      উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

                      লিনাক্স

                      উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

                      লিনাক্স

                      কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

                      লিনাক্স

                      রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

                      সম্পর্কিত পোস্ট

                      কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

                      উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

                      কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

                      কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

                      কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

                      লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

                      }' /etc/fstab

                      এই কমান্ড টেক্সট 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

                      বিষয়বস্তু

                      1. AWK প্রোগ্রাম বোঝা
                      2. লিনাক্সে awk কমান্ডের ব্যবহারিক উদাহরণ
                        1. 1. টেক্সট আউটপুট থেকে নির্দিষ্ট ক্ষেত্র মুদ্রণ করুন
                        2. 2. টেক্সট আউটপুট থেকে একাধিক ক্ষেত্র মুদ্রণ করুন
                        3. 3. BEGIN স্টেটমেন্ট ব্যবহার করুন
                        4. 4. END স্টেটমেন্ট ব্যবহার করুন
                        5. 5. প্যাটার্ন ব্যবহার করে অনুসন্ধান করুন
                        6. 6. ফাইল থেকে তথ্য বের করুন
                        7. 7. সোর্স ফাইল থেকে AWK স্ক্রিপ্ট পড়ুন
                        8. 8. ইনপুট ফিল্ড বিভাজক সেট করুন
                        9. 9. অবস্থার উপর ভিত্তি করে তথ্য মুদ্রণ করুন
                        10. 10. রেগুলার এক্সপ্রেশন তুলনা করে তথ্য মুদ্রণ করুন
                        11. 11. ইনপুটে লাইনের মোট সংখ্যা গণনা করুন
                        12. 12. আউটপুট ফিল্ড বিভাজক সেট করুন
                        13. 13. If Construct ব্যবহার করে
                        14. 14. If-Else Constructs ব্যবহার করে
                        15. 15. মাঠের প্রস্থ সেট করুন
                        16. 16. রেকর্ড বিভাজক সেট করুন
                        17. 17. প্রিন্ট এনভায়রনমেন্ট ভেরিয়েবলস
                        18. 18. আউটপুট থেকে কিছু ক্ষেত্র বাদ দিন
                        19. 19. খালি লাইন সরান
                        20. 20. ট্রাইলিং হোয়াইটস্পেস সরান
                        21. 21. প্রতিটি লাইনে ক্ষেত্রের সংখ্যা পরীক্ষা করুন
                        22. 22. বর্তমান ফাইলের নাম যাচাই করুন
                        23. 23. প্রক্রিয়াকৃত রেকর্ডের সংখ্যা যাচাই করুন
                        24. 24. একটি রেকর্ডে অক্ষরের মোট সংখ্যা মুদ্রণ করুন
                        25. 25. একটি নির্দিষ্ট দৈর্ঘ্যের চেয়ে দীর্ঘ সব লাইন প্রিন্ট করুন
                        26. 26. লাইন, অক্ষর এবং শব্দ সংখ্যা মুদ্রণ করুন
                        27. 27. শব্দের ফ্রিকোয়েন্সি গণনা করুন
                        28. 28. AWK ব্যবহার করে ফাইলগুলির নাম পরিবর্তন করুন
                        29. 29. একটি সংখ্যার স্কয়ার রুট প্রিন্ট করুন
                        30. 30. একটি সংখ্যার লগারিদম প্রিন্ট করুন
                        31. 31. একটি সংখ্যার সূচক মুদ্রণ করুন
                        32. 32. AWK ব্যবহার করে এলোমেলো সংখ্যা তৈরি করুন
                        33. 33. লাল রঙের কম্পাইলার সতর্কতা
                        34. 34. ফাইল সিস্টেমের UUID তথ্য মুদ্রণ করুন
                        35. 35. লিনাক্স কার্নেল ইমেজ ভার্সন প্রিন্ট করুন
                        36. 36. লাইনের আগে লাইন নম্বর যোগ করুন
                        37. 37. বিষয়বস্তু সাজানোর পর একটি ফাইল প্রিন্ট করুন
                        38. 38. ম্যানুয়াল পৃষ্ঠা মুদ্রণ করুন
                        39. 39. সাহায্য পৃষ্ঠা মুদ্রণ করুন
                        40. 40. মুদ্রণ সংস্করণ তথ্য
                      3. ভাবনার সমাপ্তি

                      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 ব্যবহার করে। নীচে আমরা আরো বিস্তারিতভাবে 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 প্রোগ্রামগুলি চেষ্টা করতে পারেন।

                      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}'

                      বিক্ষিপ্ত ডেটা বিশ্লেষণ করার সময় এটি খুব উপকারী কারণ আমরা আউটপুট ক্ষেত্রের প্রস্থকে ঠিক যেমন আমরা চাই নিয়ন্ত্রণ করতে পারি।

                      awk মধ্যে ক্ষেত্র প্রস্থ

                      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.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 স্নিপেট ব্যবহার করি। আপনি সহজেই নতুন ধারণা বা ক্রিয়াকলাপের সমন্বয় করতে পারেন।

                      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.txt

                      28. 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' নামে একটি বিশেষ কীওয়ার্ড প্রদর্শন করবে।

                      লিনাক্স awk কমান্ডে sqrt ফাংশন

                      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 ব্যবহার করে।

                      awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

                      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 টি মন্তব্য

                        1. রমেশ এপ্রিল 24, 2020 07:48 এ

                          সেরা sed বা awk কি?

                          উত্তর দাও
                          • লাউহাব জানুয়ারী 6, 2021 04:41 এ

                            উভয়ই সেরা:

                            - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

                            - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

                            যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

                            উত্তর দাও
                          • ডিসি জুলাই 16, 2021 09:17 এ

                            উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
                            awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

                            উত্তর দাও
                        2. আহমেদ এপ্রিল 16, 2020 13:24 এ

                          ওহে,
                          উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

                          উত্তর দাও
                          • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

                            ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

                            এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

                            উত্তর দাও
                        3. স্টেফান এপ্রিল 6, 2020 10:54 এ

                          চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

                          উত্তর দাও
                        4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

                          চমৎকার awk উদাহরণ

                          উত্তর দাও

                        উত্তর দিন উত্তর বাতিল করুন

                        মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

                        পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

                        spot_img

                        সর্বশেষ পোস্ট

                        অ্যান্ড্রয়েড

                        অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

                        উইন্ডোজ ওএস

                        স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

                        অ্যান্ড্রয়েড

                        দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

                        উইন্ডোজ ওএস

                        আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

                        অবশ্যই পরুন

                        লিনাক্স

                        উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

                        লিনাক্স

                        উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

                        লিনাক্স

                        কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

                        লিনাক্স

                        রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

                        সম্পর্কিত পোস্ট

                        কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

                        উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

                        কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

                        কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

                        কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

                        লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন

                        ;next}{print}' test.txt

                        উপরের কমান্ডটি আমাদের test.txt রেফারেন্স ফাইলে প্রতিটি লাইনের আগে একটি লাইন নম্বর যোগ করবে। এটিকে সমাধান করার জন্য অন-বিল্টড awk ভেরিয়েবল FNR ব্যবহার করে।

                        awk কমান্ড ব্যবহার করে লাইন নম্বর যোগ করুন

                        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 নিজেই একটি পূর্ণাঙ্গ প্রোগ্রামিং ভাষা, তাই একই কাজ করার একাধিক উপায় রয়েছে। সুতরাং, আশ্চর্য হবেন না কেন আমরা কিছু জিনিস ভিন্নভাবে করছি। আপনি সর্বদা আপনার দক্ষতা এবং অভিজ্ঞতার উপর ভিত্তি করে আপনার নিজের রেসিপিগুলি তৈরি করতে পারেন। আপনার কোন চিন্তা থাকলে আমাদের জানান আমাদের জানান।

                        • ট্যাগ
                        • প্রোগ্রামিং টুলস
                        • সিস্টেম ইউটিলিটি টুলস
                        শেয়ার করুন ফেসবুক টুইটার Pinterest হোয়াটসঅ্যাপ ReddIt টেলিগ্রাম ভাইবার

                          7 টি মন্তব্য

                          1. রমেশ এপ্রিল 24, 2020 07:48 এ

                            সেরা sed বা awk কি?

                            উত্তর দাও
                            • লাউহাব জানুয়ারী 6, 2021 04:41 এ

                              উভয়ই সেরা:

                              এক মাস যুক্ত করার জন্য এক্সেল সূত্র

                              - সেড সহজ প্রতিস্থাপন/সংস্করণ কাজের জন্য দরকারী এবং জটিল কাজ প্রোগ্রামিং সংক্রান্ত কিছু সীমাবদ্ধতা আছে (যদিও উন্নত ব্যবহারকারীরা অনেক কিছু করতে পারে)

                              - সাধারণ কাজের জন্য awk আরো ​​ভার্বোজ হতে হবে কিন্তু আরো জটিল প্রোগ্রামিং এর জন্য আরো জটিল ডেটা স্ট্রাকচার ব্যবহার করতে দেয়।

                              যাইহোক, এটি সব আপনার প্রয়োজন এবং এই সরঞ্জামগুলির জ্ঞানের উপর নির্ভর করে

                              উত্তর দাও
                            • ডিসি জুলাই 16, 2021 09:17 এ

                              উভয় কার্যকরীভাবে ভিন্ন। sed সীমিত কার্যকারিতা। সাধারণত ইনলাইন খোঁজার এবং স্ট্রিং এডিটর প্রতিস্থাপনের জন্য ব্যবহৃত হয়।
                              awk ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং আরও প্রোগ্রামিং কার্যকারিতা দেয়

                              উত্তর দাও
                          2. আহমেদ এপ্রিল 16, 2020 13:24 এ

                            ওহে,
                            উদাহরণগুলি দুর্দান্ত তবে আপনি উদাহরণের পরে আউটপুট পোস্ট করলে আরও ভাল হত।

                            উত্তর দাও
                            • রুবাইয়াত হোসেন এপ্রিল 18, 2020 01:28 এ

                              ধন্যবাদ, আহমেদ আমাদের সাথে থাকার জন্য। যাইহোক, আমরা ভয় পাচ্ছি যে প্রতিটি কমান্ডের জন্য পৃথক ছবি যোগ করা গাইডকে অত্যন্ত দীর্ঘ করে তুলবে এবং অতএব, ফোন/ট্যাবলেটের মতো ছোট পর্দার ডিভাইস থেকে এটি পড়া ব্যবহারকারীরা অনাকাঙ্ক্ষিত স্ক্রোলিং অভিজ্ঞতার সম্মুখীন হতে পারে।

                              এছাড়াও, আমরা আমাদের পাঠকদের উৎসাহিত করি চলতে চলতে লিনাক্সে এই awk কমান্ডগুলিকে টুইক করতে এবং সেগুলি প্রথম হাতে ব্যবহার করার জন্য। এইভাবে আপনি তাদের দ্রুত আয়ত্ত করবেন।

                              উত্তর দাও
                          3. স্টেফান এপ্রিল 6, 2020 10:54 এ

                            চমৎকার উদাহরণ। এই জন্য ধন্যবাদ

                            উত্তর দাও
                          4. করণ গ্রোভার এপ্রিল 2, 2020 17:29 এ

                            চমৎকার awk উদাহরণ

                            উত্তর দাও

                          উত্তর দিন উত্তর বাতিল করুন

                          মন্তব্য: দয়া করে আপনার মন্তব্য লিখুন! নাম:* দয়া করে এখানে আপনার নাম লিখুন ইমেল:* আপনি একটি ভুল ইমেল ঠিকানা লিখেছেন! এখানে আপনার ইমেইল ঠিকানা লিখুন ওয়েবসাইট:

                          পরবর্তী বার আমি মন্তব্য করার জন্য এই ব্রাউজারে আমার নাম, ইমেল এবং ওয়েবসাইট সংরক্ষণ করুন।

                          spot_img

                          সর্বশেষ পোস্ট

                          অ্যান্ড্রয়েড

                          অ্যান্ড্রয়েড এবং আইওএস ডিভাইসের জন্য ১০ টি সেরা ফেস সোয়াপ অ্যাপস

                          উইন্ডোজ ওএস

                          স্বয়ংক্রিয়ভাবে রিসাইকেল বিন খালি করার জন্য উইন্ডোজ 10 এর সময়সূচী কিভাবে করবেন

                          অ্যান্ড্রয়েড

                          দ্রুত অর্থ প্রদানের জন্য অ্যান্ড্রয়েড ডিভাইসের জন্য 10 টি সেরা চালান অ্যাপস

                          উইন্ডোজ ওএস

                          আপনার পিসির জন্য 10 টি সেরা GPU বেঞ্চমার্ক সফটওয়্যার

                          অবশ্যই পরুন

                          লিনাক্স

                          উবুন্টু লিনাক্সে কিভাবে XAMPP ইনস্টল এবং কনফিগার করবেন

                          লিনাক্স

                          উবুন্টু কমিউনিটিম - একটি নতুন উবুন্টু কমিউনিটি থিম

                          লিনাক্স

                          কিভাবে আপনার লিনাক্স সিস্টেমে সোর্স কোড থেকে সফটওয়্যার ইনস্টল করবেন

                          লিনাক্স

                          রেডনোটবুক - লিনাক্সের জন্য একটি আধুনিক এবং বিনামূল্যে ডায়েরি এবং জার্নাল সফ্টওয়্যার

                          সম্পর্কিত পোস্ট

                          কিভাবে লিনাক্স সিস্টেমে ককপিট ওয়েব কনসোল ইনস্টল এবং সেটআপ করবেন

                          উবুন্টু লিনাক্সে কিভাবে Yii PHP ফ্রেমওয়ার্ক ইনস্টল এবং সেট আপ করবেন

                          কিভাবে W ঠিক করবেন: কিছু ইন্ডেক্স ফাইল উবুন্টু লিনাক্সে ত্রুটি ডাউনলোড করতে ব্যর্থ হয়েছে

                          কিভাবে লিনাক্স ডেস্কটপে 1 পাসওয়ার্ড ইনস্টল এবং সেট আপ করবেন

                          কিভাবে লিনাক্স ডেস্কটপে সর্বশেষ GNU ন্যানো টেক্সট এডিটর ইনস্টল করবেন

                          লিনাক্স সিস্টেমে নতুন রিলিক ইনফ্রাস্ট্রাকচার এজেন্ট কিভাবে ইনস্টল করবেন



                          ^