Linux-AWK/C2/Basics-of-Single-Dimensional-Array-in-awk/English-timed

From Script | Spoken-Tutorial
Revision as of 12:03, 14 December 2018 by PoojaMoolya (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time
Narration
00:01 Welcome to this spoken tutorial on Basics of single dimensional array in awk.
00:07 In this tutorial we will learn about- Arrays in awk
00:12 Assigning array elements
00:15 How it is different from arrays in other programming languages and Refer the elements of an array
00:23 We will do this through some examples.
00:26 To record this tutorial, I am using Ubuntu Linux 16.04 Operating System and gedit text editor 3.20.1
00:38 You can use any text editor of your choice.
00:42 To practice this tutorial, you should have gone through previous awk tutorials on our website.
00:49 You should have some basic knowledge of any programming language like C or C++.
00:56 If not, then please go through the corresponding tutorials on our website.
01:02 The files used in this tutorial are available in the Code Files link on this tutorial page.

Please download and extract them.

01:11 What is an array in awk?

awk supports arrays for storing related elements.

01:18 Elements can be a number or a string.
01:21 Arrays in awk are associative.
01:24 This means that each array element is an index-value pair.
01:29 It looks very similar to arrays in any other programming language.
01:33 But there are some important differences.
01:36 First, we do not need to declare an array before using it.
01:41 Also there is no need to specify how many elements the array will contain.
01:47 In programming languages, array index is generally a positive integer.
01:52 Usually the index starts from 0, then 1, then 2 and so on.
01:58 But in awk, the index can be anything – any number or a string.
02:03 This is the syntax of assigning an array element in awk.

Array name can be any valid variable name.

02:11 Here the index can be an integer or a string.
02:16 Strings have to be written inside double quotes, whether it is index name or a value.
02:23 Let’s understand this with an example.
02:27 I have already written the code and saved it as array_intro.awk
02:34 This file is available in the Code Files link below the player.

Please download and use it.

02:41 Here I have taken weekdays as an example and written it inside the BEGIN section.
02:48 Here, the name of the array is day.
02:52 I have set the index as 1 and the value as Sunday.
02:57 In this array element, I have used a string as the index.

So for index first, the value is Sunday.

03:06 The entire array is constructed likewise.
03:10 Notice here, the array elements are not in a sequence.

I have declared day four before day three.

03:18 In awk arrays, index need not to be in a sequential manner.
03:23 Advantage of associative array is that new pairs can be added at any time.
03:29 Let me add day 6 in the array.
03:33 Place the cursor at the end of the last line and press Enter.

Then type the following

03:42 Save the file.
03:44 We have declared the array.

But how should we refer to the array element?

03:49 Write the arrayname and the index within square brackets to refer an element at a particular index.

Let us try this.

03:58 Switch to the code once again.
04:01 Place the cursor in front of the closing curly brace.
04:05 Press Enter and type print space day within square brackets 6
04:13 Save the code.
04:15 Open the terminal by pressing Ctrl, Alt and T keys.
04:20 Go to the folder in which you downloaded and extracted the Code Files using cd command
04:27 Now type awk space hyphen small f space array_intro.awk

Press Enter

04:38 See, we get Friday as the output.
04:42 Next we will check whether any element exists in an array at a certain index.
04:48 For this, we have to use the in operator. Let me explain this with an example.
04:55 Switch to the code in the editor window.
04:59 Place the cursor at the end of the print statement and press Enter.

Then type as shown.

05:09 Save the code.
05:11 Now I have added two if conditions.
05:15 The first if condition checks whether the index two is present in day.
05:21 If yes, then the corresponding print statement will get executed.
05:26 Then the second condition checks whether the index seven is present in day.

It will execute the print statement if it is true.

05:35 As we can see, index two is in the array and seven is not.

Let’s execute this file to verify the output.

05:44 Switch to the terminal. Press the Up arrow key to get back the previously executed command.
05:51 Press Enter to execute.
05:54 We get the output as expected.
05:57 We will now make some more changes to the code.

Update the code as shown here.

06:04 Below the 7 in day condition, I have added one more condition.
06:09 This will check whether the value of index seven is null or not.
06:14 If true, it will print Index 7 is not null
06:18 We already know that we don’t have any index with 7, so it will not print anything.
06:24 Next, we have change the print statement of the condition 7 in day.
06:30 Save the code.

Let’s see what happens when we execute the code.

06:35 Switch to terminal.

Press the up arrow key to get the previously executed command.

06:43 Press Enter to execute.
06:46 We got an unexpected output.
06:49 The statement "Index 7 is present after null comparison." is printed.

How is it possible?

06:57 When we write, day[7] not equal to null, we are trying to access the element at index 7.
07:04 This access itself will first create an element at index 7 and initialize it with the value null.
07:12 Next, we are trying to check if any element is actually present at index 7.
07:18 As null element is already created, the output shows that Index 7 is present after null comparison.
07:26 So, remember this.

day at index 7 not equal to null is a wrong way to check the presence of an element.

07:34 It will create a null element at index 7.
07:38 Instead, we have to use the in operator.
07:41 It will not create any extra element in the array.

This brings us to the end of this tutorial.

07:50 In this tutorial we learnt about- Arrays in awk
07:54 Assigning array elements
07:56 How it is different from arrays in other programming languages
08:00 Refer the elements of an array
08:03 As an assignment- Define an array flowerColor
08:07 Index will be the names of the flowers
08:10 Value will be the corresponding color of the flowers
08:14 Insert entries for any five flowers of your choice
08:18 Print the color of the fourth flower

Check if the flower “Lotus” is present in the array

08:25 The video at the following link summarises the Spoken Tutorial project.

Please download and watch it.

08:33 The Spoken Tutorial Project team conducts workshops using spoken tutorials.

And gives certificates on passing online tests.

08:42 For more details, please write to us.
08:46 Please post your timed queries in this forum.
08:50 Spoken Tutorial Project is funded by NMEICT, MHRD, Government of India.

More information on this mission is available at this link.

09:01 The script has been contributed by Antara. And this is Praveen from IIT Bombay signing off.

Thanks for joining

Contributors and Content Editors

PoojaMoolya, Sandhya.np14