13,420
edits
Changes
→INVESTIGATION 2: USING THE AWK UTILITY
# Issue the '''more''' command to quickly view the contents of the '''cars.txt''' file.<br>When finished, exit the more command by pressing the letter <span style="color:blue;font-weight:bold;font-family:courier;">q</span><br><br>The "'''print'''" action (command) is the <u>default</u> action of awk<br>to print all selected lines that match a '''pattern'''.<br>This '''action''' (contained in braces) can provide more options<br>such as printing specific fields of selected lines (or records) from a database.<br><br>[[Image:awk-1.png|thumb|right|400px|Using the awk command to display matches of the pattern '''ford'''.]]
# Issue the following linux command all to display all lines (i.e. records) in the '''cars.txt''' database that matches the pattern (or "make") called '''ford''':<br><span style="color:blue;font-weight:bold;font-family:courier;">awk '/ford/ {print}' cars.txt</span><br><br>We will use '''pipeline commands''' to both display stdout to the screen and save to files for <u>confirmation</u> of running these pipeline commands when run a '''checking-script''' later in this investigation.<br><br>
# Issue the following linux pipeline command all to display records<br>in the '''cars.txt''' database that contain the make "ford":<br><span style="color:blue;font-weight:bold;font-family:courier;">awk '/ford/' cars.txt | tee awk-1.txt</span><br><br>What do you notice? You should notice ALL lines displayed without using a search criteria.<br><br>You can use these '''variables''' with the '''print''' command for further processing.<br>We will discuss the following variables in this tutorial:<br><br>[[Image:awk-2.png|thumb|right|400px|Using the awk command to print search results by '''field number'''.]]'''$0''' - Current record (entire line)<br>'''$1''' - First field in record<br>'''$n''' - nth field in record<br>'''NR''' - Record Number (order in database)<br> '''NF''' - Number of fields in current record<br><br>[[Image:awk-2.png|thumb|right|400px|Using the awk command to print search results by '''field number'''.]]For a listing of more variables, please consult your course notes.<br><br><br><br>
# Issue the following linux pipeline command to display the model, year, quantity and price in the "cars.txt" database for makes of "chevy":<br><span style="color:blue;font-weight:bold;font-family:courier;">awk '/chevy/ {print $2,$3,$4,$5}' cars.txt | tee awk-2.txt</span><br><br>Notice that a space " " is the delimiter for the fields that appear as standard output.<br><br>
# Issue the following linux pipeline command to display all plymouths (plyms) by model name, price and quantity:<br><span style="color:blue;font-weight:bold;font-family:courier;">awk '/chevy/ {print $2,$3,$4,$5}' cars.txt | tee awk-3.txt</span><br><br>You can also use comparison operators to specify conditions for processing with matched patterns when using the awk command. Since they are used WITHIN the awk expression, they are not confused with redirection symbols<br><br> Comparison Operators:<br><br>'''<''' Less than<br>'''<=''' Less than or equal<br>'''>''' Greater than<br>'''>=''' Greater than or equal<br>'''==''' Equal<br>'''!=''' Not equal<br><br>