We already writtn one excellent string manipulation post for shell. This post is in response to the code which I seen in my office for greping IP address from ifconfig command. The command is..
ifconfig eth0 | grep 'inet addr' | cut -d: -f 2 | awk '{print $1}'
Above command explanation:
Grep command will filter ifconfig command output to list only ip address line.
Cut command then cuts out that line to print only ip address and a word Bcast
Then awk command just prints first column of the output.
This will get the IP address of the network interface. I don't blame or point out the flaw in this command. But I want to show the beauty of awk command which is good at text parsing and even sub strings as well.
In awk there is a search function which we can accomplish with // as shown below
ifconfig eth0 | awk '/inet addr/ {print}'
Output:
inet addr:192.168.1.135 Bcast:192.168.1.255 Mask:255.255.255.0
Now how to get IP address part from this line? Use below command
ifconfig eth0 | awk '/inet addr/{print $2}'
Output:
addr:192.168.1.135
But how can I remove that addr: from the output? There is an builtin function in AWK which is useful to print sub strings. The syntax for this is as follows.
awk '{print substr(column-number,start-point,end-point)}'
Note: End-point is an optional argument.
So now you want to print just 192.168.1.135, to do that we have to find from what character you want to print from above output. As my requirement is just IP address, I want my string to be displayed from 6th character to end.
$ ifconfig eth0 | awk '/inet addr/{print substr($2,6)}'
Output:
192.168.1.135
Suppose if you just want to print only first three characters then use below command.
$ ifconfig eth0 | awk '/inet addr/{print substr($2,6,3)}'
Output:
192
See the beauty of awk, we eliminate two commands(grep and cut) from the actual command. Hope you enjoyed reading, keep visiting linuxnix.com.
Latest posts by Surendra Anne (see all)
- Docker: How to copy files to/from docker container - June 30, 2020
- Anisble: ERROR! unexpected parameter type in action:
Fix - June 29, 2020 - FREE: JOIN OUR DEVOPS TELEGRAM GROUPS - August 2, 2019
- Review: Whizlabs Practice Tests for AWS Certified Solutions Architect Professional (CSAP) - August 27, 2018
- How to use ohai/chef-shell to get node attributes - July 19, 2018