Linux-AWK/C2/Loops-in-awk/Bengali
From Script | Spoken-Tutorial
Revision as of 17:07, 29 January 2019 by Kaushik Datta (Talk | contribs)
|
|
00:01 | awk এ loops এর টিউটোরিয়ালে আপনাদের স্বাগত। |
00:06 | এখানে আমরা awk এ
while, do-while, for এবং আরো looping কাঠামো সম্পর্কে শিখব। |
00:16 | আমরা এটি কিছু উদাহরণ দিয়ে করব। |
00:20 | টিউটোরিয়ালটি রেকর্ড করতে ব্যবহার করছি উবুন্টু লিনাক্স 16.04 অপারেটিং সিস্টেম এবং gedit টেক্সট এডিটর 3.20.1. |
00:32 | আপনি পছন্দের যে কোনো টেক্সট এডিটর ব্যবহার করতে পারেন। |
00:36 | টিউটোরিয়ালটি অনুশীলন করতে ওয়েবসাইটে, আগের awk টিউটোরিয়ালগুলি দেখা উচিত। |
00:43 | আপনার C বা C++ এর মত কোনো প্রোগ্রামিং ভাষার মৌলিক জ্ঞান থাকতে হবে। |
00:50 | না হলে আমাদের ওয়েবসাইটে প্রাসঙ্গিক টিউটোরিয়ালটি দেখুন। |
00:56 | এই টিউটোরিয়ালে ব্যবহৃত ফাইল এই টিউটোরিয়াল পৃষ্ঠায় Code Files লিঙ্কে উপলব্ধ। তাদের ডাউনলোড করে এক্সট্র্যাক্ট করুন। |
01:06 | loop আমাদের বার বার এক বা একাধিক কর্ম সঞ্চালন করতে দেয়। |
01:12 | awk এ while, do-while এবং for হল উপলব্ধ loops. |
01:18 | while loop এর সিনট্যাক্স এখানে দেখা যাবে। |
01:22 | While loop প্রথমে যাচাই করে যে নির্দিষ্ট কন্ডিশন true কিনা। |
01:27 | হ্যাঁ হলে, এটি বডিতে কোড এক্সিকিউট করে। এই লুপ while কন্ডিশন true হওয়া পর্যন্ত পুনরাবৃত্তি হবে। |
01:37 | আমরা আগে ব্যবহৃত একই awkdemo.txt ফাইল ব্যবহার করব। |
01:43 | আমি ইতিমধ্যে while_loop.awk নামে স্ক্রিপ্ট লিখেছি। |
01:48 | একই ফাইল এই টিউটোরিয়ালের Code Files লিঙ্কে উপলব্ধ। |
01:53 | এখানে Pipe চিহ্ন হিসাবে ফীল্ড সেপারেটর সেট করেছি। |
01:58 | প্রথমে, লুপ ভ্যারিয়েবল i এর ভ্যালু 1 সেট করতে হবে। |
02:04 | এখানে, আমরা আরেকটি ভ্যারিয়েবল f নিয়েছি এবং 1 এ শুরু করেছি। |
02:10 | ভ্যারিয়েবল f প্রতিটি রেকর্ডের জন্য ফীল্ড কাউন্টার বা ফীল্ডের স্থান বোঝায়। |
02:17 | এখন, while কন্ডিশনে, যাচাই করি যে i, 3 এর চেয়ে কম বা সমান কিনা। |
02:23 | হ্যাঁ হলে, এটি awkdemo.txt ফাইলে রেকর্ডের জন্য f তম ফীল্ডের ভ্যালু প্রিন্ট করবে। |
02:31 | তারপর আমরা field counter f কে 1 দ্বারা বৃদ্ধি করব। |
02:36 | এরপর, আমরা লুপ ভ্যারিয়েবল i কে 1 দ্বারা বৃদ্ধি করব। |
02:43 | এই printf প্রতিটি সারির শেষে একটি নতুন অক্ষর প্রিন্ট করার জন্য। |
02:49 | এই লুপ awkdemo.txt ফাইলের সকল রেকর্ডের জন্য কার্যকর করা হবে। |
02:55 | যার মানে প্রতিটি রেকর্ডের জন্য প্রথম 3 টি ফীল্ড প্রিন্ট করা হবে। |
03:00 | এখন এই কোড কার্যকর করি। |
03:03 | Ctrl, Alt এবং T কী একসাথে টিপে টার্মিনাল খুলুন। |
03:09 | সেই ফোল্ডারে যান যেখানে cd কমান্ড দ্বারা Code Files ডাউনলোড এবং এক্সট্র্যাক্ট করেছেন। |
03:16 | এখন লিখুন: awk স্পেস হাইফেন ছোটহাতের f স্পেস while_loop.awk স্পেস awkdemo.txt. এন্টার টিপুন। |
03:29 | লক্ষ্য করুন আমরা আউটপুটে সকল সারির প্রথম তিনটি ফীল্ড পেয়েছি। |
03:35 | এখন do-while লুপ সহ একই কাজ করি। |
03:38 | এখানে do-while লুপের সিনট্যাক্স দেখা যাবে। |
03:42 | do-while loop সর্বদা একবার বডির ভিতরে কোডটি কার্যকর করে। |
03:47 | তারপর এটি নির্দিষ্ট কন্ডিশন যাচাই করে. এটি বডির ভিতরে নির্দিষ্ট কন্ডিশন true হওয়া পর্যন্ত কোড পুনরাবৃত্তি করে। |
03:56 | আমি ইতিমধ্যে একটি স্ক্রিপ্ট লিখে do_loop.awk হিসাবে নাম দিয়েছি। একই ফাইল Code Files লিঙ্কে উপলব্ধ। |
04:06 | এই কোডে, এটি do লুপের স্টেটমেন্ট, যা প্রথমে কার্যকর করা হবে। এই কন্ডিশন যাচাই করা হবে। |
04:15 | এরপর, লুপের ভিতরে স্টেটমেন্ট কন্ডিশন true না হওয়া পর্যন্ত কার্যকর করা হবে। |
04:23 | এই লুপ awkdemo.txt ফাইলে সকল রেকর্ডের জন্য পুনরাবৃত্তি করবে যার মানে প্রথম 3 টি ফীল্ড সকল রেকর্ডের জন্য প্রিন্ট হবে। |
04:33 | টার্মিনালে যাই। টার্মিনাল মুছে ফেলি। |
04:38 | এখন লিখুন: awk স্পেস হাইফেন ছোটহাতের f স্পেস do আন্ডারস্কোর loop ডট awk স্পেস awkdemo ডট txt. এন্টার টিপুন। |
04:52 | আমরা একই আউটপুট পাই। তাহলে আমাদের উভয় while এবং do-while কেন রয়েছে? |
04:58 | পার্থক্যটি বুঝি। |
05:00 | while আন্ডারস্কোর loop ডট awk ফাইলে যান। |
05:05 | এখন, লুপ কাউন্টার i এর ভ্যালু 1 থেকে 4 এ বদলান। |
05:11 | এটি শুরু থেকে নির্দিষ্ট কন্ডিশন false করবে। তাই এর মানে, আমরা কোনো আউটপুট পাবো না। |
05:19 | ফাইলটি সংরক্ষণ করে টার্মিনালে যান। |
05:22 | টার্মিনাল মুছুন। এখন আপ অ্যারো কী টিপুন যতক্ষণ না while লুপ এক্সিকিউটের জন্য কমান্ড পান। |
05:30 | এখন এন্টার টিপুন। |
05:32 | আমরা খালি স্পেস কোনো আউটপুট পাচ্ছি না। |
05:37 | awkdemo.txt ফাইলে প্রতিটি রেকর্ডের জন্য, খালি লাইন আউটপুটে প্রিন্ট হচ্ছে। |
05:44 | এখন, do লুপ ফাইলে কিছু পরিবর্তন করি। |
05:48 | এখন do আন্ডারস্কোর loop ডট awk ফাইলে যাই। |
05:53 | i এর ভ্যালু 1 থেকে 4 এ বদলান। |
05:57 | ফাইলটি সংরক্ষণ করে টার্মিনালে যান। |
06:01 | টার্মিনাল মুছুন। do লুপের জন্য কমান্ড না হওয়া পর্যন্ত আপ অ্যারো কী টিপুন। এন্টার টিপুন। |
06:10 | আউটপুটে, প্রতিটি সারির শুধুমাত্র প্রথম ফীল্ড প্রিন্ট হয়। এর কারণ কি? |
06:16 | প্রতিটি সারির জন্য, awk প্রথম ফীল্ডের ভ্যালু প্রিন্ট করে, কারণ ভ্যারিয়েবল f এর ভ্যালু 1 থেকে শুরু হয়। তারপর কন্ডিশন যাচাই করা হয়। |
06:28 | যেহেতু লুপ কাউন্টার i এর ভ্যালু 4, কন্ডিশন হল false. তাই লুপটি সেই রেকর্ডের জন্য তখনই বাতিল করা হয়। |
06:39 | এই লুপ awkdemo.txt ফাইলে সকল রেকর্ডের জন্য পুনরাবৃত্তি হবে। |
06:44 | যার মানে প্রতিটি রেকর্ডের প্রথম ফীল্ড প্রিন্ট হবে। |
06:49 | আমরা প্রতিটি রেকর্ডের জন্য অন্তত একবার আউটপুট পাচ্ছি। |
06:53 | যে কোনো কন্ডিশনে অন্তত একবার কাজ করতে do-while লুপ ব্যবহার করুন। |
07:01 | আমরা for লুপ দিয়ে একই কাজ করতে পারি। |
07:05 | for লুপের সিনট্যাক্স এখানে দৃশ্যমান। |
07:09 | for স্টেটমেন্ট ইনিসিয়েলাইজেশন এক্সিকিউট করে শুরু হয়। |
07:14 | তারপর, কন্ডিশন true হওয়া পর্যন্ত, এটি ভিতরের স্টেটমেন্ট এবং তারপর ইনক্রিমেন্ট এক্সিকিউট করে। |
07:23 | C বা C++ এর মত ভাষার পরিচিতি ধরে নিয়ে, আমি সিনট্যাক্স বিস্তারে ব্যাখ্যা করছি না। |
07:30 | এই কন্ডিশনের জন্য for লুপ এইরকম দেখায়। |
07:35 | এখানে, ইনিশিয়েলাইজেশন, কন্ডিশন চেকিং এবং ভ্যারিয়েবল ইন্ক্রিমেন্টেশন একই লাইনে করা হয়। |
07:43 | এটি নিজে থেকে চেষ্টা করুন। |
07:46 | এতো কিছু লুপিং কাঠামো রয়েছে break, continue, exit. |
07:53 | আমরা আসন্ন টিউটোরিয়ালে এই বিষয়ে কিছু প্রাসঙ্গিক উদাহরণ দেখব। |
07:58 | আমাদের ফাইলে একক এবং একাধিক কমেন্ট থাকতে পারে। |
08:03 | এখানে দেখেন যে একক লাইন কমেন্ট একক হ্যাশ (#) চিহ্ন দিয়ে ঘোষণা করা হয়। |
08:10 | মাল্টিলাইন কমেন্ট ডাবল হ্যাশ (##) চিহ্ন দ্বারা ঘোষণা করা হয়। |
08:16 | এখন, আউটপুটে এই কমেন্ট যাচাই এবং প্রিন্ট করার কোনো মানে নেই। |
08:22 | আমাদের হ্যাশ (##) চিহ্ন দিয়ে শুরু হওয়া লাইন বাদ দিতে হবে। এটি আমরা কিভাবে করতে পারি? |
08:28 | যারা 8000 এর বেশী পেয়েছে তাদের জন্য স্টাইপেন্ডে 50% বৃদ্ধি করার কেস মনে করুন। |
08:36 | কমেন্ট বাদ দিতে আমরা একই উদাহরণ ব্যবহার করব। |
08:40 | আমি এক্সিকিউশনের জন্য এখানে দেখানো next.awk নামে ফাইল বানিয়েছি। |
08:47 | এখন, এই কমান্ডের মানে কি? |
08:50 | Awk প্রতিটি লাইনের শুরুতে প্যাটার্ন, ক্যারেট সাইন হ্যাশ চিহ্ন (^ #) সনাক্ত করবে। |
08:57 | প্যাটার্নটি পাওয়া গেলে next কীওয়ার্ড awk কে অবিলম্বে বর্তমান লাইনটি এড়িয়ে যেতে বলে। |
09:04 | তারপর awk ফাইল পরবর্তী লাইন থেকে প্রক্রিয়াকরণ শুরু করবে। এটি প্রক্রিয়াকরণ সময় সংরক্ষণ করবে। |
09:12 | টার্মিনালে যান এবং এখানে দেখানো কমান্ড লিখুন এবং এন্টার টিপুন। |
09:20 | আমরা কোনো কমেন্ট ছাড়াই আউটপুট পাই। |
09:24 | ধরুন, আমাদের একই ফরম্যাটের সাথে একাধিক ফাইলে শিক্ষার্থীর রেকর্ড আছে। Awkdemo_mod.txt এবং awkdemo2.txt. |
09:37 | এটি আমাদের পূর্ববর্তী ফাইলের অনুরূপ। |
09:41 | এতে হ্যাশ চিহ্নের সাথে কমেন্ট রয়েছে। |
09:45 | এবং ডাবল হ্যাশ ## চিহ্নের সাথে এর শেষে বড় টেক্সট রয়েছে। |
09:50 | আমাদের তথ্য দুটি ভিন্ন ফাইলে রয়েছে। awk সকল শিক্ষার্থীদের একটি বৃদ্ধি দিতে উভয় ফাইল প্রসেস করা উচিত। |
09:59 | একবার প্রথম ফাইলের ডাবল হ্যাশ (##) চিহ্নে এ পৌঁছলে, awk এর সেই ফাইলের প্রসেস সম্পূর্ণরূপে বন্ধ করতে হবে। |
10:06 | তারপর পরবর্তী ফাইল থেকে এক্সিকিউশন শুরু করতে হবে। এই প্রক্রিয়াকরণ সময় সংরক্ষণ করবে। |
10:13 | এখানে দেখানো next.awk সংশোধন করুন। |
10:17 | আমি begin স্টেটমেন্টের নীচে dollar জিরো tilde স্ল্যাশ caret চিহ্ন ডাবল hash স্ল্যাশ বন্ধনীতে nextfile সেমিকোলন যোগ করেছি। |
10:29 | এটি প্রতিটি লাইনের শুরুতে ডাবল হ্যাশ # চিহ্ন সন্ধান করবে। |
10:34 | পাওয়া গেলে, awk পরবর্তী ফাইল প্রক্রিয়াকরণ করতে বর্তমান ফাইল এড়িয়ে যাবে। |
10:39 | ফাইলটি সংরক্ষণ করুন। |
10:41 | টার্মিনালে ফিরে গিয়ে নিম্ন কমান্ড লিখুন। এন্টার টিপুন। |
10:48 | আমরা উভয় ফাইল থেকে আউটপুট পাচ্ছি। |
10:53 | এটি আমাদের টিউটোরিয়ালের শেষে নিয়ে আসে। সংক্ষিপ্তকরণ করি। |
10:58 | এখানে আমরা awk এ while, do… while, for, next, nextfile শিখেছি। |
11:06 | awkdemo2.txt এর শিক্ষাথীর রেকর্ডের জন্য অনুশীলনী হিসাবে, শুধুমাত্র জোড় ফীল্ড প্রিন্ট করুন (যেমন field 2, field 4 ইত্যাদি, ইনপুট ফাইলে কতগুলি ফীল্ড রয়েছে তার ভিত্তিতে) |
11:22 | নিম্ন লিঙ্কে উপলব্ধ ভিডিওটি প্রকল্পকে সারসংক্ষেপ বোঝায়। এটি ডাউনলোড করে দেখুন। |
11:30 | স্পোকেন টিউটোরিয়াল প্রকল্প দল কর্মশালার আয়োজন করে। অনলাইন পরীক্ষা পাস করলে প্রশংসাপত্র দেয়।আরো বিস্তারিত জানতে আমাদের লিখুন। |
11:43 | এই ফোরামে আপনার টাইমড ক্যোয়ারী পোস্ট করুন। এই সাইটে যান। |
11:49 | স্পোকেন টিউটোরিয়াল প্রকল্প ভারত সরকারের NMEICT, MHRD দ্বারা সমর্থিত। এই মিশনের আরো তথ্য এই লিঙ্কে প্রাপ্তিসাদ্ধ। |
12:01 | আই আই টী বোম্বে থেকে আমি বিদায় নিচ্ছি। আমাদের সাথে যোগাযোগের জন্য ধন্যবাদ। |