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 to print all selected lines that match a pattern.<br>This action (contained in braces) can provide more options such as printing specific fields of selected lines (or records) from a database.<br><br>
# Issue the following linux command all to display records in the "cars.txt" database that contain the make "ford":<br><span style="color:blue;font-weight:bold;font-family:courier;">awk '/ford/ {print}' cars.txt</span><br><br>
# Issue the following linux command all to display records 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?<br><br>You can use variables with the "print" action for further processing. We will discuss the following variables in this tutorial:<br><br>'''$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>For a listing of more variables, please consult your course notes.<br><br>The '''tilde character''' '''~''' is used to search for a pattern or display standard output for a particular field.<br><br># Issue the following linux 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 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># Issue the following linux command to display display the car make, model number, quantity and price of all vehicles that are prices less than $5,000:<br><span style="color:blue;font-weight:bold;font-family:courier;">awk '$5 < 5000 {print $1,$2,$4,$5}' cars.txt | tee awk-4.txt</span><br><br>What do you notice?<br><br># Issue the following linux command to display display the car make, model number, quantity and price of all vehicles that are prices less than $5,000:<br><span style="color:blue;font-weight:bold;font-family:courier;">awk '$5 < 5000 {print $1,$2,$4,$5}' cars.txt | tee awk-5.txt</span><br><br>The symbol tilde '''~''' is used to match a pattern for a particular field number.<br><br># Issue the following linux command to display the car make, year and quantity of all car makes that begin with the letter 'f':<br><span style="color:blue;font-weight:bold;font-family:courier;">awk '$1 ~ /^f/ {print $1,$2,$4}' cars.txt | tee awk-6.txt</span><br><br>Compound criteria symbols can be used to join search statements together<br><br>Compound Operators:<br><br>'''&&''' (and)<br>'''||''' (or)<br><br># Issue the following linux command to list all "fords" that are greater than $10,000 in price:<br><span style="color:blue;font-weight:bold;font-family:courier;">awk '$1 ~ /ford/ && $5 > 10000 {print $0}' cars.txt | tee awk-7.txt</span><br><br>
# After you complete the Review Questions sections to get additional practice, then work on your '''online assignment 3,'''<br>'''sections 4 to 6''' labelled: '''More Scripting (add)''', '''Yet More Scripting (oldfiles)''', and '''sed And awk'''<br><br>