Linux-AWK/C2/User-Defined-Functions-in-awk/Punjabi
From Script | Spoken-Tutorial
Revision as of 19:15, 17 July 2019 by Navdeep.dav (Talk | contribs)
|
|
00:01 | ਸਤਿ ਸ਼੍ਰੀ ਅਕਾਲ ਦੋਸਤੋ, “User - defined function” in “awk” ‘ਤੇ ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਤੁਹਾਡਾ ਸਵਾਗਤ ਹੈ । |
00:07 | ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਅਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਦੇ ਬਾਰੇ ਵਿੱਚ ਸਿੱਖਾਂਗੇ – “function definition” ਦਾ ਸਿੰਟੈਕਸ, “Function call” ਅਤੇ “Return statement” |
00:17 | ਅਸੀਂ ਇਹ ਕੁੱਝ ਉਦਾਹਰਣਾਂ ਦੇ ਰਾਹੀਂ ਸਮਝਾਂਗੇ । |
00:21 | ਇਸ ਟਿਊਟੋਰਿਅਲ ਨੂੰ ਰਿਕਾਰਡ ਕਰਨ ਦੇ ਲਈ ਮੈਂ ਵਰਤੋਂ ਕਰ ਰਿਹਾ ਹਾਂ “Ubuntu Linux” 16.04 “Operating System” ਅਤੇ “gedit text editor 3.20.1” |
00:34 | ਤੁਸੀਂ ਆਪਣੇ ਪਸੰਦ ਦੇ ਕਿਸੇ ਵੀ ਟੈਕਸਟ ਐਡੀਟਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ । |
00:38 | ਇਸ ਟਿਊਟੋਰਿਅਲ ਦਾ ਅਭਿਆਸ ਕਰਨ ਦੇ ਲਈ ਤੁਹਾਨੂੰ ਇਸ ਵੈੱਬਸਾਈਟ ‘ਤੇ ਪਿਛਲੇ “awk” ਟਿਊਟੋਰਿਅਲਸ ਦੇਖਣੇ ਚਾਹੀਦੇ ਹਨ । |
00:45 | ਤੁਹਾਨੂੰ ਕਿਸੇ ਵੀ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਦਾ ਕੁੱਝ ਗਿਆਨ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਜਿਵੇਂ C ਜਾਂ C + +. |
00:52 | ਜੇਕਰ ਨਹੀਂ, ਤਾਂ ਕ੍ਰਿਪਾ ਕਰਕੇ ਸਾਡੀ ਵੈੱਬਸਾਈਟ ‘ਤੇ ਸਮਰੂਪੀ ਟਿਊਟੋਰਿਅਲਸ ਵੇਖੋ । |
00:58 | ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਉਪਯੋਗਿਤ ਫਾਇਲਸ ਇਸ ਟਿਊਟੋਰਿਅਲ ਦੇ ਪੇਜ਼ ‘ਤੇ “Code Files” ਲਿੰਕ ਵਿੱਚ ਉਪਲੱਬਧ ਹਨ । ਕ੍ਰਿਪਾ ਕਰਕੇ ਉਨ੍ਹਾਂ ਨੂੰ ਡਾਊਂਨਲੋਡ ਅਤੇ ਐਕਸਟਰੈਕਟ ਕਰੋ । |
01:08 | ਹੁਣ “user defined functions” ਦੇ ਬਾਰੇ ਵਿੱਚ ਸਿੱਖਦੇ ਹਾਂ । “function” ਸਿੰਟੈਕਸ ਹੇਠਾਂ ਦਿੱਤਾ ਹੈ । |
01:16 | ਅਤੇ ਸਿੰਟੈਕਸ ਸੁਗਮ ਹੈ । |
01:20 | ਇੱਥੇ “keyword function” ਲਾਜ਼ਮੀ ਹੈ । |
01:24 | “function” ਨੂੰ “call” ਕਰਨ ਦੇ ਲਈ, parentheses ਵਿੱਚ “arguments” ਦੇ ਬਾਅਦ “function” ਦਾ ਨਾਮ ਲਿਖੋ । |
01:31 | ਧਿਆਨ ਦਿਓ, “function” ਦੇ ਨਾਮ ਅਤੇ “argument” ਦੇ “open parentheses” ਦੇ ਵਿਚਕਾਰ “space” ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ । |
01:39 | ਹੁਣ ਅਸੀਂ ਇੱਕ ਉਦਾਹਰਣ ਵੇਖਾਂਗੇ । |
01:42 | ਸਾਡੀ “awkdemo.txt file” ਵਿੱਚ ਛੇਵਾਂ “field” “stipend” ਦਰਸਾਉਂਦਾ ਹੈ । |
01:47 | ਮੰਨੋ ਕਿ “stipend” ਜਾਂ ਤਾਂ ਸਿਫ਼ਰ ਹੈ ਜਾਂ ਚਾਰ ਅੰਕਾਂ ਤੋਂ ਬਣਿਆ ਹੈ । |
01:54 | ਮੰਨ ਲਓ “stipend” 8900 ਹੈ । ਤਾਂ ਇਸਨੂੰ ਸ਼ਬਦਾਂ ਵਿੱਚ 8 ਹਜ਼ਾਰ 9 ਸੌ ਪ੍ਰਿੰਟ ਕਰੋ । |
02:03 | ਜੇਕਰ “stipend” 0 ਹੈ, ਸ਼ਬਦਾਂ ਵਿੱਚ ਸਿਫ਼ਰ ਪ੍ਰਿੰਟ ਕਰੋ । |
02:08 | ਮੈਂ “user_function.awk” ਨਾਮ ਵਾਲੀ ਫਾਇਲ ਵਿੱਚ ਪਹਿਲਾਂ ਹੀ ਕੋਡ ਲਿਖਿਆ ਹੈ । |
02:15 | ਇੱਥੇ, ਮੈਂ ਸਿੰਗਲ “argument argval” ਦੇ ਨਾਲ “changeit” ਨਾਮ ਵਾਲਾ “function” ਲਿਖਿਆ ਹੈ । |
02:23 | ਇੱਥੇ “argval” ਅਸਲ ਵਿੱਚ: ਸਾਡਾ ਛੇਵਾਂ “field” ਹੈ ਜੋ “stipend” ਹੈ । |
02:29 | “function” ਵਿੱਚ ਪਹਿਲਾਂ ਕੋਡ ਜਾਂਚ ਕਰੇਗਾ ਕਿ “argval” “Zero” ਹੈ ਜਾਂ ਨਹੀਂ । |
02:36 | ਜੇਕਰ ਹਾਂ ਤਾਂ ਇਹ ਸ਼ਬਦਾਂ ਵਿੱਚ “Zero” ਪ੍ਰਿੰਟ ਕਰੇਗਾ । |
02:40 | ਜੇਕਰ ਨਹੀਂ, ਤਾਂ ਕੋਡ ਦਾ “else” ਭਾਗ ਚੱਲੇਗਾ । |
02:46 | “else” ਭਾਗ ਵਿੱਚ, ਪਹਿਲਾਂ ਅਸੀਂ “substring function” ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ - ਇੱਕ ਕਰਕੇ ਹਰੇਕ ਅੰਕ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਾਂਗੇ । |
02:54 | ਅਤੇ ਅਸੀਂ ਭਿੰਨ “indices” ‘ਤੇ “array a” ਵਿੱਚ ਵੈਲਿਊ ਇਕੱਠੀ ਕਰਾਂਗੇ । |
03:00 | ਉਦਾਹਰਣ ਵਜੋਂ, a [1] ਖੱਬੇ ਪਾਸੇ ਤੋਂ ਪਹਿਲਾ “digit” ਜਾਂ “thousand’s place digit” ਦੇਵੇਗਾ । |
03:08 | ਹਾਲਾਂਕਿ ਸਾਡੇ ਕੋਲ ਕੇਵਲ ਚਾਰ “digits” ਹਨ, ਮੈਂ ਚਾਰ indices ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਹੈ । |
03:13 | ਅੱਗੇ, ਅਸੀਂ ਜਾਂਚ ਕਰਾਂਗੇ ਕਿ ਕੀ “elements” ਜ਼ੀਰੋ ਦੇ ਬਰਾਬਰ ਨਹੀਂ ਹੈ । ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਸਹੀ ਕ੍ਰਮ ਵਿੱਚ ਪ੍ਰਿੰਟ ਕਰਾਂਗੇ । |
03:21 | ਅਖੀਰ ਵਿੱਚ, ਅਸੀਂ ਆਉਟਪੁਟ ਵਿੱਚ ਨਵਾਂ “line break” ਦੇਣ ਦੇ ਲਈ “backslash n” ਕੈਰੇਕਟਰ ਪ੍ਰਿੰਟ ਕਰਾਂਗੇ । |
03:28 | ਫਿਰ “awk script” ਵਿੱਚ ਅਸੀਂ “dollar 2” ਪ੍ਰਿੰਟ ਕੀਤਾ, ਜੋ ਦੂਜਾ ਫ਼ੀਲਡ ਹੈ, ਜੋਕਿ ਨਾਮ ਹੈ । |
03:35 | ਫਿਰ ਅਸੀਂ “parameter dollar 6” ਦੇ ਨਾਲ “function changeit” ਕਾਲ ਕੀਤਾ, ਜੋ “stipend” ਹੈ । ਫਾਇਲ ਨੂੰ ਚਲਾਓ । |
03:43 | ਟਰਮਿਨਲ ‘ਤੇ ਜਾਓ । ਫਿਰ “cd command” ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉਸ ਫੋਲਡਰ ‘ਤੇ ਜਾਓ ਜਿਸ ਵਿੱਚ ਤੁਸੀਂ ਫਾਇਲ ਡਾਊਂਨਲੋਡ ਅਤੇ ਐਕਸਟਰੈਕਟ ਕੀਤੀ ਹੈ । |
03:53 | ਹੁਣ ਹੇਠਾਂ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ ਟਾਈਪ ਕਰੋ ਅਤੇ ਐਂਟਰ ਦਬਾਓ । |
04:00 | ਸਾਨੂੰ ਲੋੜੀਂਦੀ ਆਉਟਪੁਟ ਪ੍ਰਾਪਤ ਹੁੰਦੀ ਹੈ । |
04:03 | “user - defined function” ਵਿੱਚ “return statement” ਵੀ ਸ਼ਾਮਿਲ ਹੋ ਸਕਦਾ ਹੈ । |
04:08 | ਇਹ “statement” “awk program” ਦੇ “calling” ਭਾਗ ਵਿੱਚ “control” ਰਿਟਰਨ ਕਰਦਾ ਹੈ । |
04:13 | ਇਸ ਦੀ ਵਰਤੋਂ ਬਾਕੀ “awk program” ਵਿੱਚ ਵਰਤੋਂ ਸੰਬੰਧੀ ਵੈਲਿਊ ਰਿਟਰਨ ਕਰਨ ਲਈ ਵੀ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ । |
04:20 | ਇਹ ਇਸ ਤਰ੍ਹਾਂ ਦਿਸਦਾ ਹੈ “return space expression” ਇੱਥੇ “expression” ਭਾਗ ਓਪਸ਼ਨਲ ਹੈ । |
04:29 | ਹੁਣ array ਦਾ average ਰਿਟਰਨ ਕਰਨ ਦੇ ਲਈ function ਲਿਖੋ । |
04:34 | ਮੈਂ ਫਾਇਲ average.awk ਵਿੱਚ ਕੋਡ ਲਿਖਿਆ ਹੈ । ਕੰਟੇਂਟਸ ਵੇਖਦੇ ਹਾਂ । |
04:41 | ਅਸੀਂ ਇਸ ਉਦੇਸ਼ ਦੇ ਲਈ “function named avg” ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਹੈ । |
04:46 | ਇਸ ਵਿੱਚ ਪੰਜ “parameters” ਹਨ ।
“arr” “array” ਹੈ, ਜਿਸਦੇ ਲਈ “average” ਦੀ ਗਿਣਤੀ ਹੋਣੀ ਹੈ । |
04:55 | ”i” “array loop variable” ਹੈ । |
04:58 | “sum” ਸਾਰੇ “array elements” ਦਾ ਯੋਗ ਹੈ । |
05:03 | “n” “array” ਵਿੱਚ elements ਦੀ ਗਿਣਤੀ ਦਰਸਾਉਂਦਾ ਹੈ । |
05:07 | “ret” “function avg” ਤੋਂ ਰਿਟਰਨ ਹੋਣਾ ਵਾਲਾ “variable” ਦਰਸਾਉਂਦਾ ਹੈ ।
ret ਗਿਣਤੀ ਕੀਤੇ ਗਏ “average” ਨੂੰ ਇਕੱਠਾ ਕਰੇਗਾ । |
05:17 | “i” ਦੇ ਪਹਿਲਾਂ ਵਾਧੂ ਸਪੇਸ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ “variables i, sum, n” ਅਤੇ “ret”, “local variables” ਹਨ । |
05:27 | ਵਾਸਤਵ ਵਿੱਚ, “local variables” “arguments” ਹੋਣ ਦੇ ਲਈ ਇੰਟੇਂਡ ਨਹੀਂ ਹਨ । |
05:32 | ਤੁਹਾਨੂੰ “functions” ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਸਮੇਂ ਇਸ ਰੀਤੀ ਦੀ ਨਕਲ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ । |
05:36 | “for loop” ਵਿੱਚ ਅਸੀਂ “array elements” ਦੇ ਜੋੜ ਅਤੇ ਕੁੱਲ ਸੰਖਿਆ ਦੀ ਗਿਣਤੀ ਕੀਤੀ ਹੈ । |
05:43 | ਅਸੀਂ “elements” ਦੀ ਕੁੱਲ ਗਿਣਤੀ ਦੇ ਨਾਲ ਜੋੜ ਨੂੰ ਵੰਡ ਕੇ “average” ਦੀ ਗਿਣਤੀ ਕੀਤੀ ਹੈ । ਅਤੇ ਉਸ ਵੈਲਿਊ ਨੂੰ variable ret ਵਿੱਚ ਇਕੱਠਾ ਕੀਤਾ ਹੈ । |
05:54 | ਇਹ “function avg ()” “variable ret” ਦੀ ਵੈਲਿਊ ਰਿਟਰਨ ਕਰਦਾ ਹੈ । |
06:01 | “BEGIN section” ਵਿੱਚ ਅਸੀਂ 5 ਵੱਖ – ਵੱਖ ਸੰਖਿਆਵਾਂ ਦੇ ਨਾਲ “array nums” ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਹੈ । |
06:07 | “print statement” ਵਿੱਚ, ਅਸੀਂ ਇੱਕ “argument” ਦੇ ਨਾਲ “function avg ()” ਕਾਲ ਕੀਤਾ, ਜੋ “array name” ਹੈ । |
06:14 | ਇਸ ਲਈ:, ਤੁਹਾਨੂੰ arguments ਦੇ ਰੂਪ ਵਿੱਚ local variables ਨੂੰ ਪਾਸ ਨਹੀਂ ਕਰਨਾ ਹੋਵੇਗਾ । |
06:20 | ਟਰਮੀਨਲ ‘ਤੇ ਵਾਪਸ ਜਾਓ । ਟਰਮੀਨਲ ਸਾਫ਼ ਕਰੋ । |
06:26 | ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਕਮਾਂਡ ਨੂੰ ਟਾਈਪ ਕਰੋ “awk space hyphen f space average dot awk” ਐਂਟਰ ਦਬਾਓ । |
06:37 | ਸਾਨੂੰ ਆਉਟਪੁਟ 3.6 ਪ੍ਰਾਪਤ ਹੁੰਦੀ ਹੈ । ਤੁਸੀਂ ਕੈਲੁਕੂਲੇਟਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਸਦੀ ਪੁਸ਼ਟੀ ਕਰ ਸਕਦੇ ਹੋ । |
06:44 | ਹੁਣ ਇੱਕ ਹੋਰ ਉਦਾਹਰਣ ਵੇਖਦੇ ਹਾਂ । |
06:47 | ਮੈਂ “string” ਨੂੰ “reverse” ਕਰਨ ਦੇ ਲਈ ਇੱਕ ਕੋਡ ਲਿਖਿਆ ਹੈ ਅਤੇ ਇਸਨੂੰ “reverse.awk” ਨਾਮ ਲਿਖਿਆ ਹੈ ।
“recursive function” “string” ਨੂੰ “reverse” ਕਰਨ ਦੇ ਲਈ ਉਪਯੋਗਿਤ ਹੈ । |
06:57 | ਇੱਥੇ ਵੀਡਿਓ ਰੋਕੋ ਅਤੇ ਫਲੋ ਨੂੰ ਕੰਟਰੋਲ ਕਿਵੇਂ ਕਰਨਾ ਹੈ ਇਹ ਸਮਝਣ ਦੇ ਲਈ ਕੋਡ ਵੇਖੋ । ਫਿਰ ਆਉਟਪੁਟ ਦੇਖਣ ਦੇ ਲਈ ਇਸਨੂੰ ਚਲਾਓ । |
07:07 | ਨਿਰਧਾਰਤ ਕੰਮ ਦੇ ਰੂਪ ਵਿੱਚ, awkdemo.txt file ਵਿੱਚ Roll number field ਨੂੰ reverse ਕਰਨ ਲਈ function rev ਦੀ ਵਰਤੋਂ ਕਰੋ । |
07:16 | ਉਦਾਹਰਣ ਵਜੋਂ, ਜੇਕਰ ਰੋਲ ਨੰਬਰ A001 ਹੈ, ਤਾਂ ਆਉਟਪੁਟ 100A ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ । |
07:24 | ਉਸਦੇ ਲਈ ਕੋਡ Code Files ਵਿੱਚ reverse_roll.awk ਦੇ ਰੂਪ ਵਿੱਚ ਦਿੱਤਾ ਗਿਆ ਹੈ । |
07:31 | ਇਸ ਦੇ ਨਾਲ ਅਸੀਂ ਇਸ ਟਿਊਟੋਰਿਅਲ ਦੇ ਅਖੀਰ ਵਿੱਚ ਆ ਗਏ ਹਾਂ । ਸੰਖੇਪ ਵਿੱਚ । |
07:36 | ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਅਸੀਂ ਸਿੱਖਿਆ - function definition ਦਾ ਸਿੰਟੈਕਸ |
07:41 | “Function call” ਅਤੇ “Return statement” |
07:45 | ਨਿਰਧਾਰਤ ਕੰਮ ਦੇ ਰੂਪ ਵਿੱਚ, “2D matrix” ਦਾ “transpose” ਬਣਾਉਣ ਦੇ ਲਈ “function” ਲਿਖੋ । |
07:52 | “array” ਤੋਂ ਹੇਠਲੀ ਵੈਲਿਊ “element” ਰਿਟਰਨ ਕਰਨ ਦੇ ਲਈ “function” ਲਿਖੋ । |
07:58 | ਹੇਠ ਲਿਖੇ ਲਿੰਕ ‘ਤੇ ਮੌਜੂਦ ਵੀਡਿਓ, ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੈਕਟ ਦਾ ਸਾਰ ਕਰਦੀ ਹੈ। ਕ੍ਰਿਪਾ ਕਰਕੇ ਇਸ ਨੂੰ ਡਾਊਂਨਲੋਡ ਕਰੋ ਅਤੇ ਵੇਖੋ। |
08:06 | ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੈਕਟ ਟੀਮ, ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਰਕਸ਼ਾਪਸ ਚਲਾਉਂਦੀਆਂ ਹਨ। ਆਨਲਾਇਨ ਟੈਸਟ ਪਾਸ ਕਰਨ ਵਾਲਿਆਂ ਨੂੰ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਵੀ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ। |
08:16 | ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਦੇ ਲਈ, ਕ੍ਰਿਪਾ ਕਰਕੇ ਸਾਨੂੰ ਲਿਖੋ। |
08:20 | ਕ੍ਰਿਪਾ ਕਰਕੇ ਇਸ ਫੋਰਮ ਵਿੱਚ ਆਪਣੀ ਸਮੇਂਬੱਧ ਕਵੇਰੀ ਪੋਸਟ ਕਰੋ । |
08:24 | ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੈਕਟ NMEICT, MHRD, ਭਾਰਤ ਸਰਕਾਰ ਦੁਆਰਾ ਪ੍ਰਮਾਣਿਤ ਹੈ। ਇਸ ਮਿਸ਼ਨ ‘ਤੇ ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਦਿਖਾਏ ਗਏ ਲਿੰਕ ‘ਤੇ ਉਪਲੱਬਧ ਹੈ। |
08:36 | ਮੈਂ ਨਵਦੀਪ ਤੁਹਾਡੇ ਤੋਂ ਇਜ਼ਾਜਤ ਲੈਂਦਾ ਹਾਂ। ਸਾਡੇ ਨਾਲ ਜੁੜਣ ਦੇ ਲਈ ਧੰਨਵਾਦ। |