Linux-AWK/C2/Built-in-Functions-in-awk/Bengali

From Script | Spoken-Tutorial
Revision as of 11:30, 30 January 2019 by Kaushik Datta (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time
Narration
00:01 awk এ built-in functions এর টিউটোরিয়ালে আপনাদের স্বাগত।
00:07 এখানে আমরা বিভিন্ন ধরনের বিল্ট-ইন ফাংশন সম্পর্কে শিখব যেমন-

গাণিতিক ফাংশন,

00:15 স্ট্রিং ফাংশন,
00:17 ইনপুট / আউটপুট ফাংশন এবং টাইম স্ট্যাম্প ফাংশন।
00:23 আমরা এটি কিছু উদাহরণ দিয়ে করব।
00:26 টিউটোরিয়ালটি রেকর্ড করতে ব্যবহার করছি উবুন্টু লিনাক্স 16.04 অপারেটিং সিস্টেম এবং gedit টেক্সট এডিটর 3.20.1.
00:38 আপনি পছন্দের যে কোনো টেক্সট এডিটর ব্যবহার করতে পারেন।
00:42 টিউটোরিয়ালটি অনুশীলন করতে ওয়েবসাইটে, আগের awk টিউটোরিয়ালগুলি দেখা উচিত।
00:49 আপনার C বা C++ এর মত কোনো প্রোগ্রামিং ভাষার মৌলিক জ্ঞান থাকতে হবে।
00:56 না হলে আমাদের ওয়েবসাইটে প্রাসঙ্গিক টিউটোরিয়ালটি দেখুন।
01:02 এই টিউটোরিয়ালে ব্যবহৃত ফাইল এই টিউটোরিয়াল পৃষ্ঠায় Code Files লিঙ্কে উপলব্ধ। তাদের ডাউনলোড করে এক্সট্র্যাক্ট করুন।
01:12 Built-in functions সর্বদা awk কে কল করার জন্য উপলব্ধ।
01:17 প্রথমে আমরা গাণিতিক ফাংশন সম্পর্কে শিখব।

square root function (sqrt (x)), সংখ্যা x এর পজিটিভ বর্গমূল ফেরৎ দেয়।

01:27 int ফাংশন x কে পূর্ণসংখ্যা ভ্যালু ট্রাঙ্কেট করে।
01:32 exponential ফাংশন x এর সূচকীয় দেয়।
01:37 log ফাংশন x এর প্রাকৃতিক লগারিদম ভ্যালু দেয়।
01:43 sin এবং cos যথাক্রমে sine (x) এবং cosine(x) দেয়।
01:49 মনে রাখবেন যে x আর্গুমেন্ট radians এ উল্লিখিত।
01:55 এই ফাংশনটি বুঝতে একটি উদাহরণ দেখি।
02:00 আমি ইতিমধ্যে কোডটি arithmetic আন্ডারস্কোর function ডট awk ফাইলে লিখেছি।

একই কোড Code Files লিঙ্কে উপলব্ধ।

02:10 এখানে, আমরা যথাক্রমে একটি পজিটিভ এবং নেগেটিভ সংখ্যার বর্গমূল প্রিন্ট করছি।
02:17 এরপর যথাক্রমে পজিটিভ এবং নেগেটিভ সংখ্যার পূর্ণসংখ্যা ভ্যালু প্রিন্ট করছি।
02:24 তারপর একটি ছোট সংখ্যা এবং একটি বড় সংখ্যার সূচক প্রিন্ট করছি।
02:31 এরপর, পজিটিভ এবং নেগেটিভ সংখ্যার প্রাকৃতিক লগারিদম প্রিন্ট হয়।
02:38 আমরা 0.52 radian এর sine এবং cosine ভ্যালুও প্রিন্ট করছি, যা আসলে 30 ডিগ্রি। ফাইলটি টার্মিনালে এক্সিকিউট করি।
02:50 Ctrl, Alt এবং T কী একসাথে টিপে টার্মিনাল খুলুন।
02:55 এরপর সেই ফোল্ডারে যান যেখানে cd কমান্ড দ্বারা ফাইলটি ডাউনলোড করে এক্সট্র্যাক্ট করেছেন।
03:03 এখন লিখুন awk স্পেস -f স্পেস arithmetic_function.awk এবং আউটপুট দেখতে এন্টার টিপুন।
03:14 এই আউটপুট থেকে কয়েকটি জিনিস স্পষ্ট।
03:18 sqrt() ফাংশন একটি পজিটিভ সংখ্যার বর্গমূল দেয়।
03:23 সংখ্যাটি নেগেটিভ হলে এটি nan বা not a number দেখায়।
03:29 int () যে কোনো পজিটিভ বা নেগেটিভ সংখ্যার ভগ্ন পূর্ণসংখ্যা দেয়।
03:36 exp () একটি সংখ্যার সূচকীয় দেয়। সংখ্যাটি খুব বড় হলে, ফাংশন inf ফেরৎ দেবে।
03:47 পজিটিভ সংখ্যার প্রাকৃতিক লগারিদম log() ফাংশন দ্বারা দেওয়া হয়।
03:53 সংখ্যা নেগেটিভ হলে, ফাংশন nan দেয়।
03:58 Sine এবং cosine ফাংশন সংশ্লিষ্ট ভ্যালু ফেরৎ দেয়। আপনি ক্যালকুলেটর দ্বারা ভ্যালু যাচাই করতে পারেন।
04:07 এখন রেন্ডম ফাংশন দেখি।
04:11 rand (), 0 এবং 1 এর মাঝে যে কোনো রেন্ডম সংখ্যা দেয় তবে 0 বা 1 দেয় না।
04:21 জেনারেটেড সংখ্যা এক awk এক্সিকিউশনের মধ্যে রেন্ডম হবে।
04:27 কিন্তু awk প্রোগ্রামের বিভিন্ন এক্সিকিউশন জুড়ে পূর্বভাসিত।
04:33 srand(x) রেন্ডম ফাংশনের সীড ভ্যালু x প্রদান করতে ব্যবহৃত হয়।
04:39 x এর অনুপস্থিতিতে, দিনের date এবং time সীড ভ্যালু হিসাবে ব্যবহৃত হয়। এটি একটি উদাহরণ দিয়ে বুঝি।
04:49 আমি রেন্ডম ফাংশনের জন্য কোড লিখেছি এবং random.awk হিসাবে সংরক্ষিত করেছি।
04:56 এখানে, for লুপে, rand() ফাংশন 0 এবং 1 এর মাঝে রেন্ডম সংখ্যা বানাবে।
05:04 তারপর উত্পন্ন সংখ্যাটি 50 দ্বারা গুণিত হবে এবং প্রিন্ট হবে।
05:10 তাই এই কোডটি 50 এর মাঝে 5 টি রেন্ডম সংখ্যা বানাবে।
05:16 টার্মিনালে গিয়ে ফাইলটি এক্সিকিউট করি। টার্মিনাল মুছে ফেলুন।
05:23 লিখুন: awk স্পেস হাইফেন f স্পেস random ডট awk এবং এন্টার টিপুন।
05:31 দেখুন, এটি 5 টি রেন্ডম সংখ্যা দেয়।
05:35 আমি আবার কোডটি এক্সিকিউট করলে কি হবে?
05:39 পূর্বে এক্সিকিউট করা কমান্ড পেতে আপ অ্যারো কী টিপুন এবং এন্টার টিপুন।
05:47 আমরা একই আউটপুট পাচ্ছি। যার মানে স্ক্রিপ্টের প্রতিটি কার্যকরণের জন্য awk রেন্ডম সংখ্যার একই সেট বানাচ্ছে।
05:57 তাহলে কিভাবে প্রতিটি এক্সিকিউশনের মাঝে রেন্ডম সংখ্যার নতুন সেট পেতে পারি? আবার কোডে যান।
06:06 for লুপের আগে, লিখুন srand() function
06:11 ফাইল সংরক্ষণ করতে CRTL এবং S কী টিপুন।
06:16 এখন টার্মিনালে যান।
06:19 পূর্বের এক্সিকিউট করা কমান্ড পেতে আপ অ্যারো কী টিপুন এবং Enter টিপুন।
06:27 এটি রেন্ডম সংখ্যার ভিন্ন সেট প্রদান করে।
06:31 তাই এটি আর্গুমেন্ট ছাড়া ব্যবহারের সময় আমরা srand ফাংশন দ্বারা রেন্ডম সংখ্যার একটি নতুন সেট বানাতে পারি।
06:40 এরপর কিছু স্ট্রিং ফাংশন দেখবো। length ফাংশন একটি নির্দিষ্ট স্ট্রিং s এর দৈর্ঘ্য দেয়।
06:49 ইনডেক্স ফাংশন বড় স্ট্রিং s1 এর মাঝে স্ট্রিং s2 এর স্থান নির্ধারণ করে।
06:57 উদাহরণস্বরূপ, index বন্ধনীতে ডাবল উদ্ধৃতিতে linux কমা ডাবল উদ্ধৃতিতে quotes n, 3 ফেরৎ দেয়. একটি উদাহরণ দেখি।
07:10 awkdemo.txt ফাইল খুলুন।
07:14 আমরা জানি যে প্রতিটি শিক্ষার্থীর awkdemo.txt ফাইলে 4 সংখ্যার রোল নম্বর রয়েছে।
07:21 টাইপিং এররের কারণে, রোল নম্বরে ভুল সংখ্যা থাকতে পারে। আমরা awk কমান্ড দ্বারা সহজে এই সনাক্ত করতে পারি।
07:30 টার্মিনালে যান। টার্মিনাল মুছে ফেলুন।
07:36 এখন এখানে দেখানো কমান্ড লিখুন। এখানে আমরা যাচাই করছি যে প্রথম ফীল্ডের দৈর্ঘ্য 4 বা তার সমান কিনা।
07:46 না হলে সেই বিশেষ রেকর্ড প্রিন্ট হবে। এন্টার টিপুন।
07:53 দেখুন, সেখানে একটি রোল নম্বর S02 রয়েছে যা ভুলভাবে লেখা হয়েছে।
08:00 এতে তিনটি সংখ্যা রয়েছে, যখন অন্যতে চারটি সংখ্যা রয়েছে।
08:07 substr(s,a,b) ফাংশন একটি বড় স্ট্রিং s থেকে একটি সাব-স্ট্রিং এক্সট্র্যাক্ট করে।
08:14 আমি প্যারামিটার ব্যাখ্যা করি।
08:17 এখানে s হল স্ট্রিং।
08:20 a, s এ স্থান নির্দেশ করে যেখান থেকে এক্সট্রাকশন শুরু হবে।
08:26 b অক্ষরের সংখ্যা নির্দেশ করে যা এক্সট্র্যাক্ট করা হবে। একটি উদাহরণ দেখি।
08:33 awkdemo.txt ফাইলে যান।
08:37 রোল নম্বরের প্রথম অক্ষর Hostel কোড বোঝায় যেখানে নির্দিষ্ট শিক্ষার্থী বসবাস করে।
08:46 ধরুন আমরা সেই শিক্ষার্থীর তালিকা খুঁজতে চাই, যারা Hostel A তে রয়েছে।
08:52 এটি পেতে, টার্মিনালে যান।
08:56 এখানে দেখানো কমান্ড লিখুন।
09:00 এখানে আমরা $1 দ্বারা চিহ্নিত স্ট্রিং নিয়েছি।
09:05 আমরা জানি যে $1 প্রথম ফীল্ড বোঝায়, এটি আমাদের ক্ষেত্রে রোল নম্বর।
09:12 এরপর একটি সাব স্ট্রিং এক্সট্র্যাক্ট করি যা দৈর্ঘ্য one এর সাথে স্থান one এ শুরু হয়।
09:19 তারপর, এটি বড়হাতের A এর সমান হলে ফাইল থেকে সেই লাইন প্রিন্ট হবে। আউটপুট দেখতে এন্টার টিপুন।
09:29 আমরা Hostel A এ শিক্ষার্থীর তালিকা পেয়েছি।
09:34 আমরা split ফাংশন আগে দেখেছি। তাই, এখানে এটি বিস্তারে ব্যাখ্যা করছি না।
09:40 আপনার কোন সন্দেহ থাকলে পূর্ববর্তী awk টিউটোরিয়াল দেখুন।
09:45 সেখানে কিছু অন্যান্য ফাংশন রয়েছে যা Input/Output সম্পর্কিত। system() ফাংশন - awk এ যে কোনো unix কমান্ড চালাতে সাহায্য করে।
09:56 এখন, আমরা awk কমান্ড দ্বারা unk কমান্ড তারিখ রান করব।
10:01 টার্মিনালে এখানে দেখানো কমান্ড লিখুন এবং Enter টিপুন।
10:09 টার্মিনালে আউটপুট হিসাবে আজকের তারিখ এবং সময় দেখায়।
10:15 আমাদের এটি কেন প্রয়োজন? আমরা awk কমান্ডের শুধুমাত্র BEGIN বিভাগ রেখেছি।
10:21 প্রকৃত বিশ্ব পরিস্থিতিতে, প্রয়োজনীয় আউটপুট প্রদর্শনের আগে, সিস্টেমের তারিখ প্রিন্ট করতে চাই।
10:28 সেই ক্ষেত্রে, awk কমান্ড থেকে সিস্টেম কমান্ড এক্সিকিউট করতে হবে।
10:34 টাইম স্ট্যাম্প সহ কিছু ফাংশন রয়েছে যেমন systime(), strftime() ইত্যাদি
10:43 এই ফাংশন সম্পর্কে জানতে ইন্টারনেটে ব্রাউজ করুন।
10:48 এটি আমাদের টিউটোরিয়ালের শেষে নিয়ে আসে। সংক্ষিপ্তকরণ করি।
10:53 এখানে আমরা বিভিন্ন ধরনের বিল্ট-ইন ফাংশন সম্পর্কে শিখেছি: গাণিতিক ফাংশন, স্ট্রিং ফাংশন, ইনপুট / আউটপুট ফাংশন এবং টাইম স্ট্যাম্প ফাংশন।
11:06 অনুশীলনী হিসাবে - প্রতিটি রেকর্ডের অন্তিম ফীল্ড প্রিন্ট করতে একটি awk প্রোগ্রাম লিখুন।
11:13 যেখানে awkdemo.txt ফাইল ব্যবহার করে শিক্ষাথীর নামে তৃতীয় অক্ষরে ছোটহাতের s রয়েছে।
11:22 নিম্ন লিঙ্কে উপলব্ধ ভিডিওটি প্রকল্পকে সারসংক্ষেপ বোঝায়। এটি ডাউনলোড করে দেখুন।
11:30 স্পোকেন টিউটোরিয়াল প্রকল্প দল কর্মশালার আয়োজন করে। অনলাইন পরীক্ষা পাস করলে প্রশংসাপত্র দেয়। আরো বিস্তারিত জানতে আমাদের লিখুন।
11:43 এই ফোরামে আপনার টাইমড ক্যোয়ারী পোস্ট করুন। এই সাইটে যান।
11:47 স্পোকেন টিউটোরিয়াল প্রকল্প ভারত সরকারের NMEICT, MHRD দ্বারা সমর্থিত। এই মিশনের আরো তথ্য এই লিঙ্কে প্রাপ্তিসাদ্ধ।
11:59 আই আই টী বোম্বে থেকে আমি বিদায় নিচ্ছি। আমাদের সাথে যোগাযোগের জন্য ধন্যবাদ।

Contributors and Content Editors

Kaushik Datta