banner



How To You Awk To Filter By Row

When nosotros run sure commands in Unix/Linux to read or edit text from a string or file, we most times try to filter output to a given section of interest. This is where using regular expressions comes in handy.

Read Also: 10 Useful Linux Chaining Operators with Practical Examples

What are Regular Expressions?

A regular expression can be defined as a strings that stand for several sequence of characters. One of the virtually important things near regular expressions is that they allow you to filter the output of a command or file, edit a department of a text or configuration file and then on.

Features of Regular Expression

Regular expressions are fabricated of:

  1. Ordinary characters such as space, underscore(_), A-Z, a-z, 0-nine.
  2. Meta characters that are expanded to ordinary characters, they include:
    1. (.) it matches whatsoever single character except a newline.
    2. (*) it matches nix or more existences of the immediate grapheme preceding it.
    3. [ character(due south) ] it matches any i of the characters specified in character(s), one tin can also apply a hyphen (-) to mean a range of characters such equally [a-f], [1-5], and then on.
    4. ^ it matches the beginning of a line in a file.
    5. $ matches the end of line in a file.
    6. \ it is an escape graphic symbol.

In guild to filter text, ane has to utilize a text filtering tool such equally awk. You tin think of awk as a programming language of its own. But for the scope of this guide to using awk, we shall cover it as a simple control line filtering tool.

The general syntax of awk is:

# awk 'script' filename        

Where 'script' is a fix of commands that are understood by awk and are execute on file, filename.

Information technology works by reading a given line in the file, makes a re-create of the line and so executes the script on the line. This is repeated on all the lines in the file.

The 'script' is in the form '/blueprint/ action' where blueprint is a regular expression and the action is what awk volition do when it finds the given blueprint in a line.

How to Utilize Awk Filtering Tool in Linux

In the following examples, we shall focus on the meta characters that we discussed above under the features of awk.

A uncomplicated example of using awk:

The example below prints all the lines in the file /etc/hosts since no blueprint is given.

# awk '//{print}'/etc/hosts        
Awk Prints all Lines in a File
Awk Prints all Lines in a File

Use Awk with Pattern:

I the instance below, a pattern localhost has been given, and so awk will lucifer line having localhost in the /etc/hosts file.

# awk '/localhost/{impress}' /etc/hosts        
Awk Print Given Matching Line in a File
Awk Impress Given Matching Line in a File

Using Awk with (.) wild bill of fare in a Pattern

The (.) will match strings containing loc, localhost, localnet in the example beneath.

That is to say * l some_single_character c *.

# awk '/l.c/{impress}' /etc/hosts        
Use Awk to Print Matching Strings in a File
Utilize Awk to Print Matching Strings in a File

Using Awk with (*) Character in a Pattern

It volition friction match strings containing localhost, localnet, lines, capable, as in the example below:

# awk '/l*c/{print}' /etc/localhost        
Use Awk to Match Strings in File
Use Awk to Match Strings in File

Y'all will likewise realize that (*) tries to a get y'all the longest match possible it can detect.

Let expect at a instance that demonstrates this, take the regular expression t*t which means match strings that showtime with letter of the alphabet t and end with t in the line beneath:

this is tecmint, where you get the all-time expert tutorials, how to's, guides, tecmint.        

You will get the following possibilities when you use the pattern /t*t/:

this is t this is tecmint this is tecmint, where you lot get t this is tecmint, where you get the best expert t this is tecmint, where you get the best good tutorials, how t this is tecmint, where y'all get the all-time skillful tutorials, how tos, guides, t this is tecmint, where you get the all-time good tutorials, how tos, guides, tecmint        

And (*) in /t*t/ wild menu character allows awk to choose the the last pick:

this is tecmint, where you get the best skillful tutorials, how to'south, guides, tecmint        

Using Awk with set [ graphic symbol(s) ]

Take for example the set [al1], here awk will lucifer all strings containing character a or l or i in a line in the file /etc/hosts.

# awk '/[al1]/{print}' /etc/hosts        
Use-Awk to Print Matching Character in File
Use-Awk to Print Matching Character in File

The next instance matches strings starting with either Chiliad or k followed by T:

# awk '/[Kk]T/{print}' /etc/hosts        
Use Awk to Print Matched String in File
Apply Awk to Print Matched String in File

Specifying Characters in a Range

Understand characters with awk:

  1. [0-nine] means a single number
  2. [a-z] ways match a single lower example alphabetic character
  3. [A-Z] means friction match a single upper case letter
  4. [a-zA-Z] means match a single letter
  5. [a-zA-Z 0-9] means lucifer a single letter or number

Lets await at an instance below:

# awk '/[0-9]/{impress}' /etc/hosts        
Use Awk To Print Matching Numbers in File
Use Awk To Print Matching Numbers in File

All the line from the file /etc/hosts contain at to the lowest degree a single number [0-9] in the in a higher place example.

Utilise Awk with (^) Meta Character

It matches all the lines that start with the pattern provided equally in the example below:

# awk '/^fe/{impress}' /etc/hosts # awk '/^ff/{print}' /etc/hosts        
Use Awk to Print All Matching Lines with Pattern
Apply Awk to Impress All Matching Lines with Pattern

Use Awk with ($) Meta Grapheme

It matches all the lines that terminate with the design provided:

# awk '/ab$/{print}' /etc/hosts # awk '/ost$/{print}' /etc/hosts # awk '/rs$/{impress}' /etc/hosts        
Use Awk to Print Given Pattern String
Use Awk to Print Given Pattern String

Use Awk with (\) Escape Graphic symbol

It allows you to take the graphic symbol following it as a literal that is to say consider it just equally information technology is.

In the case below, the first control prints out all line in the file, the second command prints out nix considering I want to lucifer a line that has $25.00, but no escape character is used.

The third command is correct since a an escape character has been used to read $ as it is.

# awk '//{print}' deals.txt # awk '/$25.00/{print}' deals.txt # awk '/\$25.00/{print}' deals.txt        
Use Awk with Escape Character
Use Awk with Escape Character

Summary

That is non all with the awk command line filtering tool, the examples to a higher place a the basic operations of awk. In the adjacent parts we shall be advancing on how to apply circuitous features of awk. Cheers for reading through and for any additions or clarifications, mail a comment in the comments section.

If Y'all Appreciate What Nosotros Practice Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or scan the thousands of published articles available FREELY to all.

If you like what you are reading, please consider ownership us a coffee ( or 2 ) as a token of appreciation.

Support Us

Nosotros are thankful for your never ending support.

How To You Awk To Filter By Row,

Source: https://www.tecmint.com/use-linux-awk-command-to-filter-text-string-in-files/

Posted by: raylichannoosee.blogspot.com

0 Response to "How To You Awk To Filter By Row"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel