Linux-AWK/C2/Built-in-Variables-in-awk/Punjabi

From Script | Spoken-Tutorial
Revision as of 19:18, 17 July 2019 by Navdeep.dav (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time
Narration
00:01 “awk built - in variables” ਅਤੇ “awk script” ‘ਤੇ ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਤੁਹਾਡਾ ਸਵਾਗਤ ਹੈ ।
00:07 ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਅਸੀਂ “Built - in variables”, “awk script” ਦੇ ਬਾਰੇ ਵਿੱਚ ਸਿੱਖਾਂਗੇ ।
00:14 ਅਸੀਂ ਇਹਨਾਂ ਨੂੰ ਕੁੱਝ ਉਦਾਹਰਣਾਂ ਦੇ ਮਾਧਿਅਮ ਨਾਲ ਕਰਾਂਗੇ ।
00:17 ਇਸ ਟਿਊਟੋਰਿਅਲ ਨੂੰ ਰਿਕਾਰਡ ਕਰਨ ਦੇ ਲਈ, ਮੈਂ ਵਰਤੋਂ ਕਰ ਰਿਹਾ ਹਾਂ “Ubuntu Linux 16.04 Operating System ਅਤੇ gedit text editor 3.20.1
00:30 ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਉਪਯੋਗਿਤ ਫਾਇਲਸ ਇਸ ਟਿਊਟੋਰਿਅਲ ਦੇ ਪੇਜ਼ ‘ਤੇ “Code Files” ਲਿੰਕ ਵਿੱਚ ਉਪਲੱਬਧ ਹਨ । ਕ੍ਰਿਪਾ ਕਰਕੇ ਡਾਊਂਨਲੋਡ ਕਰੋ ਅਤੇ ਉਨ੍ਹਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ ।
00:40 ਇਸ ਟਿਊਟੋਰਿਅਲ ਦਾ ਅਭਿਆਸ ਕਰਨ ਦੇ ਲਈ, ਤੁਹਾਨੂੰ ਇਸ ਵੈੱਬਸਾਈਟ ‘ਤੇ ਪਹਿਲਾਂ awk ਟਿਊਟੋਰਿਅਲਸ ਨੂੰ ਵੇਖਣਾ ਚਾਹੀਦਾ ਹੈ ।
00:47 ਜੇਕਰ ਨਹੀਂ, ਤਾਂ ਕ੍ਰਿਪਾ ਕਰਕੇ ਇਸ ਵੈੱਬਸਾਈਟ ‘ਤੇ ਸਮਰੂਪੀ ਟਿਊਟੋਰਿਅਲਸ ਵੇਖੋ ।
00:52 ਪਹਿਲਾਂ “awk” ਵਿੱਚ ਕੁੱਝ “built - in variables” ਵੇਖਦੇ ਹਾਂ ।
00:57 ਕੈਪੀਟਲ “RS” ਇੱਕ ਇਨਪੁਟ ਫਾਇਲ ਵਿੱਚ “record separator” ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ । ਡਿਫਾਲਟ ਰੂਪ ਤੋਂ ਇਹ “newline” ਹੈ ।
01:07 ਕੈਪੀਟਲ FS ਇੱਕ ਇਨਪੁਟ ਫਾਇਲ ਵਿੱਚ “field separator” ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ।
01:13 ਡਿਫਾਲਟ ਰੂਪ ਤੋਂ “FS” ਦੀ ਵੈਲਿਊ “whitespace” ਹੈ ।
01:18 ਕੈਪੀਟਲ “ORS” “output record separator” ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ । ਡਿਫਾਲਟ ਰੂਪ ਤੋਂ ਇਹ “newline” ਹੈ ।
01:27 ਕੈਪੀਟਲ “OFS” “output field separator” ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ । ਡਿਫਾਲਟ ਰੂਪ ਤੋਂ ਇਹ “whitespace” ਹੈ ।
01:36 ਇਹਨਾਂ ਸਭ ਦਾ ਮਤਲੱਬ ਸਮਝਦੇ ਹਾਂ ।
01:40 ਹੁਣ “awkdemo” ਫਾਇਲ ‘ਤੇ ਇੱਕ ਨਜ਼ਰ ਪਾਓ ।
01:44 ਜਦੋਂ ਅਸੀਂ “awk” ਕਮਾਂਡ ਦੇ ਨਾਲ ਇਸ “awkdemo” ਫਾਇਲ ਪ੍ਰੋਸੈਸ ਕਰ ਰਹੇ ਹਾਂ, ਇਹ ਸਾਡੀ ਇਨਪੁਟ ਫਾਇਲ ਬਣ ਜਾਂਦੀ ਹੈ
01:51 ਧਿਆਨ ਦਿਓ ਕਿ ਸਾਰੇ ਰਿਕਾਰਡ “newline character” ਦੁਆਰਾ ਇੱਕ ਦੂਜੇ ਨਾਲ ਵੰਡੇ ਜਾਂਦੇ ਹਨ ।
01:58 “newline” “record separator RS variable” ਦੇ ਲਈ ਡਿਫਾਲਟ ਵੈਲਿਊ ਹੈ । ਇਸ ਲਈ: ਇੱਥੇ ਕੁੱਝ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ ।
02:08 ਧਿਆਨ ਦਿਓ ਸਾਰੇ ਫੀਲਡਸ “pipe symbol” ਦੁਆਰਾ ਵੰਡੇ ਗਏ ਹਨ । ਅਸੀਂ “awk” ਨੂੰ ਇਸਦੇ ਬਾਰੇ ਵਿੱਚ ਕਿਵੇਂ ਦੱਸੀਏ । ਵੇਖਦੇ ਹਾਂ ।
02:18 ਡਿਫਾਲਟ ਰੂਪ ਤੋਂ “spaces” ਜਾਂ “tabs” ਦੀ ਕੋਈ ਵੀ ਗਿਣਤੀ ਫੀਲਡਸ ਨੂੰ ਵੱਖਰਾ ਕਰਦੀ ਹੈ ।
02:24 ਅਸੀਂ “hyphen capital F” ਓਪਸ਼ਨ ਦੀ ਮਦਦ ਨਾਲ ਇਸ ਨੂੰ ਰਿਸੈਟ ਕਰ ਸਕਦੇ ਹਾਂ ਜਿਵੇਂ ਕਿ ਪਹਿਲਾਂ ਦੇ ਟਿਊਟੋਰਿਅਲਸ ਵਿੱਚ ਸਿੱਖਿਆ ।
02:33 ਜਾਂ ਅਸੀਂ “FS” “variable” ਦੀ ਵਰਤੋਂ ਨਾਲ “BEGIN section” ਵਿੱਚ ਇਸਨੂੰ ਰਿਸੈਟ ਕਰ ਸਕਦੇ ਹਾਂ ।
02:40 ਇਸਨੂੰ ਇੱਕ ਉਦਾਹਰਣ ਦੇ ਮਾਧਿਅਮ ਨਾਲ ਕਰਦੇ ਹਾਂ ।

ਮੰਨ ਲਓ, ਮੈਂ ਉਨ੍ਹਾਂ ਵਿਦਿਆਰਥੀਆਂ ਦੇ ਨਾਮ ਦਾ ਪਤਾ ਲਗਾਉਣਾ ਚਾਹੁੰਦਾ ਹਾਂ, ਜਿਨ੍ਹਾਂ ਨੂੰ 5000 ਰੁਪਏ ਤੋਂ ਜ਼ਿਆਦਾ ਦਾ ਸਟਾਇਪੇਂਡ ਮਿਲ ਰਿਹਾ ਹੈ ।

02:51 “CTRL, ALT” ਅਤੇ “T” ਕੀਜ ਦਬਾਕੇ ਟਰਮੀਨਲ ਖੋਲੋ ।
02:57 cd ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉਸ ਫੋਲਡਰ ‘ਤੇ ਜਾਓ, ਜਿਸ ਵਿੱਚ ਤੁਸੀਂ Code Files ਨੂੰ ਡਾਊਂਨਲੋਡ ਅਤੇ ਐਕਸਟਰੈਕਟ ਕਰਕੇ ਰੱਖਿਆ ਹੈ ।
03:04 ਇੱਥੇ ਦਿਖਾਏ ਗਏ ਅਨੁਸਾਰ ਕਮਾਂਡ ਟਾਈਪ ਕਰੋ ।
03:08 ਇੱਥੇ “BEGIN” ਸੈਕਸ਼ਨ ਵਿੱਚ, ਅਸੀਂ “pipe symbol” ਦੇ ਰੂਪ ਵਿੱਚ “FS” ਦੀ ਵੈਲਿਊ ਅਸਾਇਨ ਕੀਤੀ ਹੈ । ਉਸੀ ਤਰ੍ਹਾਂ ਨਾਲ ਅਸੀਂ “RS variable” ਨੂੰ ਸੋਧ ਕੇ ਕਰ ਸਕਦੇ ਹਾਂ ।
03:19 ਕਮਾਂਡ ਨੂੰ ਚਲਾਉਣ ਦੇ ਲਈ ਐਂਟਰ ਦਬਾਓ ।
03:23 ਆਉਟਪੁਟ ਉਨ੍ਹਾਂ ਵਿਦਿਆਰਥੀਆਂ ਦੀ ਸੂਚੀ ਦਿਖਾਉਂਦਾ ਹੈ, ਜੋ ਸਟਾਇਪੇਂਡ ਦੇ ਰੂਪ ਵਿੱਚ ਰੁਪਏ 5000 ਤੋਂ ਜ਼ਿਆਦਾ ਪ੍ਰਾਪਤ ਕਰ ਰਹੇ ਹਨ ।
03:30 ਇੱਥੇ “name” ਫ਼ੀਲਡ ਅਤੇ “stipend” ਫ਼ੀਲਡ ਖਾਲੀ “space” ਦੁਆਰਾ ਵੱਖਰਾ ਹੈ ।
03:36 ਨਾਲ ਹੀ, ਸਾਰੇ ਰਿਕਾਰਡਸ “newline character” ਵੱਖਰੇ ਹਨ ।
03:42 ਮੰਨ ਲਓ ਸਾਨੂੰ “output field separator” ਦੇ ਰੂਪ ਵਿੱਚ “colon” ਅਤੇ “output record separator” ਦੇ ਰੂਪ ਵਿੱਚ ਡਬਲ “newline” ਚਾਹੀਦੀ ਹੈ ।
03:52 ਅਸੀਂ ਇਸਨੂੰ ਕਿਵੇਂ ਕਰ ਸਕਦੇ ਹਾਂ? ਵੇਖਦੇ ਹਾਂ ।
03:55 ਪਿਛਲੀ ਚਲਾਈ ਗਈ ਕਮਾਂਡ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਟਰਮੀਨਲ ਵਿੱਚ ਅਪ ਐਰੋ ਕੀ ਦਬਾਓ ।
04:01 ਇੱਥੇ ਦਿਖਾਏ ਗਏ ਅਨੁਸਾਰ ਕਮਾਂਡ ਨੂੰ ਸੋਧ ਕੇ ਕਰੋ ਅਤੇ ਫਿਰ ਐਂਟਰ ਦਬਾਓ ।
04:08 ਸਾਨੂੰ ਲੋੜੀਂਦੇ ਫਾਰਮੈਟ ਵਿੱਚ ਆਉਟਪੁਟ ਪ੍ਰਾਪਤ ਹੁੰਦੀ ਹੈ ।
04:12 ਹੁਣ ਮੰਨ ਲਓ ਕਿ ਸਾਡੀ ਇਨਪੁਟ ਫਾਇਲ “sample.txt” ਹੈ ।
04:18 ਧਿਆਨ ਦਿਓ ਕਿ ਇੱਥੇ “field separator” “newline” ਹੈ ਅਤੇ “record separator” ਡਬਲ “newline” ਹੈ ।
04:27 ਅਸੀਂ ਇਸ ਫਾਇਲ ਨਾਲ ਰੋਲ ਨੰਬਰ ਅਤੇ ਨਾਮ ਦੀ ਜਾਣਕਾਰੀ ਕਿਵੇਂ ਲੈ ਸਕਦੇ ਹਾਂ ?
04:32 ਹਾਂ, ਤੁਸੀਂ ਠੀਕ ਅਨੁਮਾਨ ਲਗਾਇਆ । ਸਾਨੂੰ ਦੋਵੇਂ “FS” ਅਤੇ “RS” “variables” ਨੂੰ ਸੋਧ ਕੇ ਕਰਨਾ ਹੋਵੇਗਾ ।
04:39 ਇਹ ਟਿਊਟੋਰਿਅਲ ਰੋਕੋ ਅਤੇ ਨਿਰਧਾਰਤ ਕੰਮ ਦੇ ਰੂਪ ਵਿੱਚ ਇਸ ਨੂੰ ਕਰੋ ।
04:43 ਹੁਣ ਹੋਰ “built - in variables” ਵੇਖਦੇ ਹਾਂ ।
04:47 ਕੈਪੀਟਲ “NR” “awk” ਦੁਆਰਾ ਪ੍ਰੋਸੈਸ ਕੀਤੇ ਗਏ “Number of Records” ਦਿੰਦਾ ਹੈ ।
04:53 ਕੈਪੀਟਲ “NF” ਵਰਤਮਾਨ ਰਿਕਾਰਡ ਵਿੱਚ “Number of Fields” ਦਿੰਦਾ ਹੈ ।
04:59 ਇਸ ‘ਤੇ ਇੱਕ ਉਦਾਹਰਣ ਵੇਖਦੇ ਹਾਂ ।

ਮੰਨ ਲਓ, ਅਸੀਂ ਫਾਇਲ ਵਿੱਚ ਅਪੂਰਨ ਲਾਇਨਸ ਪਤਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ ।

05:07 ਇੱਥੇ, ਅਪੂਰਨ ਲਾਈਨ ਦਾ ਮਤਲੱਬ ਹੈ ਕਿ ਇਹ ਆਮ 6 ਫਿਲਡਸ ਤੋਂ ਘੱਟ ਹੈ ।
05:13 ਟਰਮੀਨਲ ‘ਤੇ ਜਾਓ । “Ctrl” ਅਤੇ “L” ਕੀਜ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਟਰਮੀਨਲ ਸਾਫ਼ ਕਰੋ ।
05:20 ਦਿਖਾਏ ਗਏ ਅਨੁਸਾਰ ਕਮਾਂਡ ਟਾਈਪ ਕਰੋ ।
05:24 ਕਿਉਂਕਿ ਫ਼ੀਲਡਸ “pipe symbol” ਦੁਆਰਾ ਵੱਖਰੇ ਹਨ, “BEGIN” ਸੈਕਸ਼ਨ ਵਿੱਚ “pipe” symbol ਦੇ ਲਈ “FS” ਵੈਲਿਊ ਸੈੱਟ ਕਰੋ ।
05:33 ਅੱਗੇ ਅਸੀਂ ਲਿਖਿਆ “NF not equal to 6”
05:37 ਇਹ ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ ਵਰਤਮਾਨ ਲਾਈਨ ਵਿੱਚ ਫ਼ੀਲਡਸ ਦੀ ਗਿਣਤੀ 6 ਦੇ ਬਰਾਬਰ ਨਹੀਂ ਹੈ ।
05:43 ਜੇਕਰ ਇਹ ਸਹੀ ਹੈ, ਤਾਂ ਪ੍ਰਿੰਟ ਸੈਕਸ਼ਨ “$ 0” ਦੁਆਰਾ ਦਰਸਾਈ ਗਈ ਪੂਰੀ ਲਾਈਨ ਦੇ ਨਾਲ ਰਿਕਾਰਡ ਦਾ ਲਾਈਨ ਨੰਬਰ “NR” ਪ੍ਰਿੰਟ ਕਰੇਗਾ । ਐਂਟਰ ਦਬਾਓ ।
05:55 ਆਉਟਪੁਟ ਵਿੱਚ, ਅਸੀਂ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ ਰਿਕਾਰਡ ਨੰਬਰ 16 ਅਪੂਰਨ ਰਿਕਾਰਡ ਹੈ । ਇਸ ਵਿੱਚ 6 ਦੇ ਬਜਾਏ ਕੇਵਲ 5 ਫ਼ੀਲਡਸ ਹਨ ।
06:05 ਇੱਕ ਹੋਰ ਉਦਾਹਰਣ ਵੇਖਦੇ ਹਾਂ ।
ਇੱਥੇ ਕਿੰਨੇ ਫ਼ੀਲਡਸ ਹਨ ਇਹ ਪਰਵਾਹ ਕੀਤੇ ਬਿਨਾਂ, ਅਸੀਂ ਹਰੇਕ ਵਿਦਿਆਰਥੀ ਦੇ ਲਈ ਪਹਿਲਾ ਅਤੇ ਆਖਰੀ ਫ਼ੀਲਡ ਕਿਵੇਂ ਪ੍ਰਿੰਟ ਕਰ ਸਕਦੇ ਹਾਂ ? 
06:16 ਇੱਥੇ ਦਿਖਾਏ ਗਏ ਅਨੁਸਾਰ ਟਰਮੀਨਲ ‘ਤੇ ਕਮਾਂਡ ਟਾਈਪ ਕਰੋ ।
06:21 ਇੱਥੇ ਅਸੀਂ “FS” “variable” ਸੈਟ ਕਰਨ ਦੀ ਬਜਾਏ “hyphen capital F” ਓਪਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕੀਤੀ । ਐਂਟਰ ਦਬਾਓ ।
06:30 ਸਾਨੂੰ ਫਾਇਲ ਵਿੱਚ ਹਰੇਕ ਰਿਕਾਰਡ ਦੇ ਲਈ ਕੇਵਲ ਪਹਿਲਾ ਅਤੇ ਆਖਰੀ ਫ਼ੀਲਡਸ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ ।
06:36 ਹੁਣ ਕੁਝ ਹੋਰ ਵੇਖਦੇ ਹਾਂ ।
06:39 ਮੰਨ ਲਓ, ਵਿਦਿਆਰਥੀਆਂ ਦਾ ਰਿਕਾਰਡ “demo1.txt”, “demo2.txt” ਦੋ ਫਾਇਲਸ ਵਿੱਚ ਵੰਡਿਆ ਗਿਆ ਹੈ ।
06:48 ਅਸੀਂ ਇਹਨਾਂ ਦੋ ਫਾਇਲਸ ਵਿੱਚੋਂ ਹਰੇਕ ਵਿੱਚੋਂ ਪਹਿਲੀਆਂ 3 ਲਾਇਨਸ ਪ੍ਰਿੰਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ ।

ਅਸੀਂ ਇਹ “NR variable” ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਰ ਸਕਦੇ ਹਾਂ ।

06:57 ਇੱਥੇ ਦੋ ਫਾਇਲਸ ਦਾ ਕੰਟੇਂਟ ਹੈ ।
07:02 ਹੁਣ ਹਰੇਕ ਫਾਇਲ ਨਾਲ ਪਹਿਲੀਆਂ 3 ਲਾਈਨ ਦਿਖਾਉਣ ਦੇ ਲਈ, ਟਰਮੀਨਲ ‘ਤੇ ਹੇਠ ਦਿੱਤੀ ਕਮਾਂਡ ਟਾਈਪ ਕਰੋ ।
07:11 ਐਂਟਰ ਦਬਾਓ ।
07:13 ਆਉਟਪੁਟ “demo1.txt” ਫਾਇਲ ਦੇ ਕੇਵਲ ਪਹਿਲੇ 3 ਰਿਕਾਰਡ ਦਿਖਾਉਂਦੀ ਹੈ ।
07:20 ਅਸੀਂ ਦੂਜੀ ਫਾਇਲ ਲਈ ਵੀ ਉਹੀ ਕਿਵੇਂ ਪ੍ਰਿੰਟ ਕਰ ਸਕਦੇ ਹਾਂ ?
07:24 ਹੱਲ ਹੈ “NR” ਦੇ ਬਜਾਏ “FNR” ਦੀ ਵਰਤੋਂ ਕਰਨਾ ।

“FNR” ਵਰਤਮਾਨ ਫਾਇਲ ਵਿੱਚ “current record number” ਹੈ ।

07:34 ਹਰ ਵਾਰ ਇੱਕ ਨਵਾਂ ਰਿਕਾਰਡ ਪੜੇ ਜਾਣ ਦੇ ਬਾਅਦ “FNR” ਵੱਧ ਜਾਂਦਾ ਹੈ ।
07:39 ਹਰ ਵਾਰ ਇੱਕ ਨਵੀਂ ਇਨਪੁਟ ਫਾਇਲ ਸ਼ੁਰੂ ਹੋਣ ‘ਤੇ ਇਸ ਨੂੰ ਜ਼ੀਰੋ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ।
07:46 ਪਰ “NR” ਇਨਪੁਟ ਦੇ ਰਿਕਾਰਡ ਦੀ ਗਿਣਤੀ ਹੈ ਜਿਸ ਨੂੰ “awk” ਨੇ ਪ੍ਰੋਗਰਾਮ ਦੇ ਚੱਲਣ ਦੀ ਸ਼ੁਰੂਆਤ ਨਾਲ ਸੋਧਿਆ ਹੈ ।
07:55 ਇਸਨੂੰ ਨਵੀਂ ਫਾਇਲ ਦੇ ਨਾਲ ਜ਼ੀਰੋ ਰਿਸੈਟ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ।
07:59 ਟਰਮੀਨਲ ‘ਤੇ ਜਾਓ । ਪਿਛਲੀ ਚਲਾਈ ਗਈ ਕਮਾਂਡ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਅਪ ਐਰੋ ਕੀ ਦਬਾਓ ।
08:06 ਹੇਠਾਂ ਦਿੱਤੇ ਗਏ ਅਨੁਸਾਰ ਪਿਛਲੀ ਕਮਾਂਡ ਵਿੱਚ ਬਦਲਾਵ ਕਰੋ ।

“NR” ਦੀ ਬਜਾਏ “FNR” ਟਾਈਪ ਕਰੋ ।

08:14 “NR” ਦੇ ਅੱਗੇ “Print” ਸੈਕਸ਼ਨ ਵਿੱਚ ਟਾਈਪ ਕਰੋ “FNR” ਐਂਟਰ ਦਬਾਓ ।
08:21 ਵੇਖੋ, ਹੁਣ ਸਾਨੂੰ ਸਹੀ ਆਉਟਪੁਟ ਮਿਲਦੀ ਹੈ ।

“FNR” ਨਵੀਂ ਫਾਇਲ ਦੇ ਨਾਲ ਜ਼ੀਰੋ ‘ਤੇ ਸੈਟ ਹੈ ਪਰ “NR” ਵੱਧਦਾ ਰਹਿੰਦਾ ਹੈ ।

08:31 ਹੁਣ ਕੁੱਝ ਹੋਰ “built - in variables” ਵੇਖਦੇ ਹਾਂ । “FILENAME” ਵੈਰੀਏਬਲ ਪੜ੍ਹੀ ਜਾਣ ਵਾਲੀ ਫਾਇਲ ਦਾ ਨਾਮ ਦਿੰਦਾ ਹੈ ।
08:40 “ARGC” ਕਮਾਂਡ ਲਾਈਨ ਵਿੱਚ ਦਿੱਤੇ ਗਏ “arguments” ਦੀ ਗਿਣਤੀ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ।
08:46 “ARGV” ਇੱਕ “array” ਦੀ ਨੁਮਾਇੰਦਗੀ ਕਰਦਾ ਹੈ, ਜੋ “command line arguments” ਨੂੰ ਇਕੱਠਾ ਕਰਦਾ ਹੈ ।
08:52 “ENVIRON” “shell environment variables” ਦਾ “array” ਅਤੇ ਸਮਰੂਪੀ ਵੈਲਿਊਜ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ।
09:00 “ARGV” ਅਤੇ “ENVIRON” “awk” ਵਿੱਚ “array” ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ, ਅਸੀਂ ਬਾਅਦ ਦੇ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਉਨ੍ਹਾਂ ‘ਤੇ ਗੌਰ ਕਰਾਂਗੇ ।
09:09 ਹੁਣ “FILENAME” ਵੈਰੀਏਬਲ ‘ਤੇ ਇੱਕ ਨਜ਼ਰ ਪਾਉਂਦੇ ਹਾਂ ।

ਅਸੀਂ ਕਾਰਵਾਈ ਕੀਤੀ ਜਾ ਰਹੀ ਵਰਤਮਾਨ ਫਾਇਲ ਦਾ ਨਾਮ ਕਿਵੇਂ ਪ੍ਰਿੰਟ ਕਰ ਸਕਦੇ ਹਾਂ ?

09:18 ਟਰਮੀਨਲ ‘ਤੇ ਜਾਓ ਅਤੇ ਦਿਖਾਏ ਗਏ ਅਨੁਸਾਰ ਕਮਾਂਡ ਟਾਈਪ ਕਰੋ ।
09:23 ਇੱਥੇ ਅਸੀਂ “string concatenation operator” ਦੇ ਰੂਪ ਵਿੱਚ “space” ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਹੈ । ਕਮਾਂਡ ਚਲਾਉਣ ਦੇ ਲਈ ਐਂਟਰ ਦਬਾਓ ।
09:32 ਆਉਟਪੁਟ ਕਈ ਵਾਰ “input filename” ਦਿਖਾਉਂਦੀ ਹੈ ।
09:37 ਅਜਿਹਾ ਇਸਲਈ, ਕਿਉਂਕਿ ਇਹ ਕਮਾਂਡ “awkdemo.txt” ਫਾਇਲ ਵਿੱਚ ਹਰੇਕ ਰੋ ਦੇ ਲਈ ਇੱਕ ਵਾਰ ਫਾਇਲਨਾਮ ਪ੍ਰਿੰਟ ਕਰਦਾ ਹੈ । ਅਸੀਂ ਇਸਨੂੰ ਕੇਵਲ ਇੱਕ ਵਾਰ ਕਿਵੇਂ ਪ੍ਰਿੰਟ ਕਰ ਸਕਦੇ ਹਾਂ ?
09:48 ਟਰਮੀਨਲ ਸਾਫ਼ ਕਰੋ । ਪਿਛਲੀ ਚਲਾਈ ਗਈ ਕਮਾਂਡ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਦੇ ਲਈ ਅਪ ਐਰੋ ਕੀ ਦਬਾਓ ।
09:55 ਇੱਥੇ ਦਿਖਾਏ ਗਏ ਅਨੁਸਾਰ ਪਿਛਲੀ ਕਮਾਂਡ ਵਿੱਚ ਬਦਲਾਵ ਕਰੋ । ਐਂਟਰ ਦਬਾਓ ।
10:02 ਹੁਣ ਸਾਨੂੰ ਫਾਇਲਨਾਮ ਕੇਵਲ ਇੱਕ ਵਾਰ ਮਿਲਦਾ ਹੈ ।
10:06 ਇੱਥੇ “awk” ਵਿੱਚ ਕੁੱਝ ਹੋਰ “built - in variables” ਹਨ । ਕ੍ਰਿਪਾ ਕਰਕੇ ਉਨ੍ਹਾਂ ‘ਤੇ ਜਾਣਕਾਰੀ ਦੇ ਲਈ ਇੰਟਰਨੈੱਟ ਬਰਾਊਜ ਕਰੋ ।
10:14 ਮੰਨ ਲਓ, ਅਸੀਂ ਉਨ੍ਹਾਂ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਲੱਭਣਾ ਚਾਹੁੰਦੇ ਹਾਂ ਜੋ ਪਾਸ ਹੋਏ ਹਨ ਅਤੇ ਜਿਨ੍ਹਾਂ ਦਾ ਸਟਾਇਪੇਂਡ 8000 ਰੁਪਏ ਤੋਂ ਜ਼ਿਆਦਾ ਹੈ
10:22 “output field separator” ਦੇ ਰੂਪ ਵਿੱਚ “comma” ਦੀ ਵਰਤੋਂ ਕਰੋ ਅਤੇ “footer section” ਵਿੱਚ ਫਾਇਲ ਲਈ ਦਿਖਾਇਆ ਗਿਆ ਡਾਟਾ ਅਤੇ ਫਾਇਲ ਦਾ ਨਾਮ ਪ੍ਰਿੰਟ ਕਰੋ ।

ਅਸੀਂ ਇਹ ਕਿਵੇਂ ਕਰ ਸਕਦੇ ਹਾਂ ?

10:36 ਟਰਮੀਨਲ ‘ਤੇ ਹੇਠ ਦਿੱਤੀ ਕਮਾਂਡ ਟਾਈਪ ਕਰੋ । ਐਂਟਰ ਦਬਾਓ ।
10:43 ਅਸੀਂ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ ਕੇਵਲ ਇੱਕ ਵਿਦਿਆਰਥੀ ਪਾਸ ਹੋਇਆ ਹੈ ਅਤੇ 8000 ਰੁਪਏ ਤੋਂ ਜ਼ਿਆਦਾ ਸਟਾਇਪੇਂਡ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ।

ਅਤੇ ਰਿਕਾਰਡ ਨੰਬਰ 2 ਹੈ ।

10:53 ਸਾਡੀ ਉਮੀਦ ਅਨੁਸਾਰ “footer” ਵਿੱਚ ਫਾਇਲ ਦਾ ਨਾਮ ਵੀ ਵੇਖ ਸਕਦੇ ਹਾਂ ।
10:58 ਅਸੀਂ ਜ਼ਿਆਦਾ ਤੋਂ ਜ਼ਿਆਦਾ ਮੁਸ਼ਕਲ ਕੰਮਾਂ ਦੇ ਲਈ “awk” ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ ।
11:03 ਅਜਿਹੀ ਸਥਿਤੀ ਵਿੱਚ, ਟਰਮੀਨਲ ‘ਤੇ ਹਰ ਵਾਰ ਕਮਾਂਡ ਲਿਖਣਾ ਜ਼ਿਆਦਾ ਔਖਾ ਹੋ ਜਾਂਦਾ ਹੈ ।
11:09 ਅਸੀਂ ਇਸਦੇ ਬਜਾਏ ਇੱਕ ਵੱਖਰੀ ਫਾਇਲ ਵਿੱਚ “awk” ਪ੍ਰੋਗਰਾਮ ਲਿਖ ਸਕਦੇ ਹਾਂ ।
11:14 ਚਲਾਉਣ ਦੇ ਯੋਗ ਬਣਾਉਣ ਦੇ ਲਈ, ਉਸ ਫਾਇਲ ਵਿੱਚ “dot awk” ਐਕਸਟੇਂਸ਼ਨ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ।
11:19 ਚਲਾਉਂਦੇ ਸਮੇਂ, ਅਸੀਂ ਇਸ “awk” ਪ੍ਰੋਗਰਾਮ ਫਾਇਲਨਾਮ ਨੂੰ “awk” ਕਮਾਂਡ ਦੇ ਨਾਲ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਹਾਂ ।
11:26 ਅਜਿਹਾ ਕਰਨ ਦੇ ਲਈ, ਸਾਨੂੰ “hyphen small f” ਓਪਸ਼ਨ ਵਰਤੋਂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ । ਇੱਕ ਉਦਾਹਰਣ ਵੇਖਦੇ ਹਾਂ ।
11:35 ਮੈਂ ਪਹਿਲਾਂ ਹੀ ਇੱਕ “awk” ਪ੍ਰੋਗਰਾਮ ਲਿਖਿਆ ਹੈ ਅਤੇ “prog1 dot awk” ਦੇ ਰੂਪ ਵਿੱਚ ਸੇਵ ਕੀਤਾ ਹੈ ।
11:42 ਇਹ ਕੋਡ “Code Files” ਲਿੰਕ ਵਿੱਚ ਉਪਲੱਬਧ ਹੈ ।
11:46 ਟਰਮੀਨਲ ‘ਤੇ ਜਾਓ । ਵੇਖੋ ਪਿਛਲੀ ਚਲਾਈ ਗਈ ਕਮਾਂਡ ਦੇ “single quotes” ਵਿੱਚ ਅਸੀਂ ਕੀ ਲਿਖਿਆ ਹੈ ?
11:55 “prog1.awk” ਫਾਇਲ ਦਾ ਕੰਟੇਂਟ ਬਿਲਕੁੱਲ ਸਮਾਨ ਹੈ ।
12:00 “awk” ਫਾਇਲ ਵਿੱਚ ਕੇਵਲ ਅੰਤਰ ਇਹ ਹੈ ਕਿ ਅਸੀਂ “single quotes” ਵਿੱਚ ਨਹੀਂ ਲਿਖਿਆ ਹੈ ।
12:07 ਫਾਇਲ ਨੂੰ ਚਲਾਉਣ ਦੇ ਲਈ ਟਰਮੀਨਲ ‘ਤੇ ਹੇਠ ਦਿੱਤੇ ਨੂੰ ਟਾਈਪ ਕਰੋ,

“awk space hyphen small f space prog1.awk space awkdemo.txt” ਅਤੇ ਐਂਟਰ ਦਬਾਓ ।

12:24 ਅਸੀਂ ਉਸੇ ਤਰ੍ਹਾਂ ਦੀ ਹੀ ਆਉਟਪੁਟ ਪ੍ਰਾਪਤ ਕਰ ਰਹੇ ਹਾਂ ਜਿਵੇਂ ਕਿ ਅਸੀਂ ਪਹਿਲਾਂ ਵੇਖਿਆ ਹੈ ।
12:29 ਇਸ ਲਈ: ਇਸ ਤਰ੍ਹਾਂ ਅਸੀਂ “awk” ਪ੍ਰੋਗਰਾਮਸ ਲਿਖ ਸਕਦੇ ਹਾਂ ਅਤੇ ਕਈ ਵਾਰ ਇਸ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ ।
12:35 ਇਸ ਦੇ ਨਾਲ ਅਸੀਂ ਇਸ ਟਿਊਟੋਰਿਅਲ ਦੇ ਅਖੀਰ ਵਿੱਚ ਆ ਗਏ ਹਾਂ । ਸੰਖੇਪ ਵਿੱਚ..
12:40 ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਅਸੀਂ ਕਈ ਉਦਾਹਰਣਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ “Built - in variables”,
“awk script” ਦੇ ਬਾਰੇ ਵਿੱਚ ਸਿੱਖਿਆ । 
12:48 ਇੱਕ ਨਿਰਧਾਰਤ ਕੰਮ ਦੇ ਰੂਪ ਵਿੱਚ “awkdemo.txt” ਫਾਇਲ ਵਿੱਚ ਪੰਜਵੀਂ ਲਾਈਨ ਦੇ ਆਖਰੀ ਫੀਲਡ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰਨ ਲਈ “awk” ਸਕਰਿਪਟ ਲਿਖੋ ।
12:58 ਟਰਮੀਨਲ ‘ਤੇ “/etc/passwd” ਸਿਸਟਮ ਫਾਇਲ ਖੋਲੋ ।
13:05 ਉਸ ਵਿੱਚ ਸਾਰੇ “separators” ਦੀ ਪਹਿਚਾਣ ਕਰੋ ।
13:09 ਹੁਣ ਵੀਹਵੀਂ ਲਾਈਨ ਤੋਂ ਅੱਗੇ ਫਾਇਲ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਨ ਦੇ ਲਈ ਸਕਰਿਪਟ ਲਿਖੋ ।
13:15 ਉਹ ਵੀ, ਕੇਵਲ ਉਨ੍ਹਾਂ ਲਾਇਨਸ ਦੇ ਲਈ ਜਿਨ੍ਹਾਂ ਵਿੱਚ 6 ਤੋਂ ਜ਼ਿਆਦਾ ਫੀਲਡਸ ਹਨ ।
13:20 ਤੁਹਾਨੂੰ ਉਸ ਵਿਸ਼ੇਸ਼ ਲਾਈਨ ਵਿੱਚ ਲਾਈਨ ਨੰਬਰ, ਪੂਰੀ ਲਾਈਨ ਅਤੇ ਫ਼ੀਲਡਸ ਦੀ ਗਿਣਤੀ ਪ੍ਰਿੰਟ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ।
13:28 ਹੇਠ ਲਿਖੇ ਲਿੰਕ ‘ਤੇ ਮੌਜੂਦ ਵੀਡਿਓ, ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੈਕਟ ਦਾ ਸਾਰ ਕਰਦੀ ਹੈ। ਕ੍ਰਿਪਾ ਕਰਕੇ ਇਸ ਨੂੰ ਡਾਊਂਨਲੋਡ ਕਰੋ ਅਤੇ ਵੇਖੋ।
13:36 ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੇਕਟ ਟੀਮ, ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਰਕਸ਼ਾਪਸ ਚਲਾਉਂਦੀਆਂ ਹਨ। ਆਨਲਾਇਨ ਟੈਸਟ ਪਾਸ ਕਰਨ ਵਾਲਿਆਂ ਨੂੰ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਵੀ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ। ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਦੇ ਲਈ, ਕ੍ਰਿਪਾ ਕਰਕੇ ਸਾਨੂੰ ਲਿਖੋ।
13:47 ਕ੍ਰਿਪਾ ਕਰਕੇ ਆਪਣੀ ਸਮੇਂਬੱਧ ਕਵੇਰੀ ਇਸ ਫੋਰਮ ਵਿੱਚ ਪੋਸਟ ਕਰੋ ।
13:51 ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੈਕਟ NMEICT, MHRD, ਭਾਰਤ ਸਰਕਾਰ ਦੁਆਰਾ ਪ੍ਰਮਾਣਿਤ ਹੈ। ਇਸ ਮਿਸ਼ਨ ‘ਤੇ ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਦਿਖਾਏ ਗਏ ਲਿੰਕ ‘ਤੇ ਉਪਲੱਬਧ ਹੈ।
14:03 ਮੈਂ ਨਵਦੀਪ ਤੁਹਾਡੇ ਤੋਂ ਇਜ਼ਾਜਤ ਲੈਂਦਾ ਹਾਂ। ਸਾਡੇ ਨਾਲ ਜੁੜਣ ਦੇ ਲਈ ਧੰਨਵਾਦ।

Contributors and Content Editors

Navdeep.dav