06 Basic AWK command - kumar159man/MyShellLearning GitHub Wiki
Let's learn basics of awk command
myubuntu@myubuntu-VirtualBox:~$ ls -l total 48 drwxr-xr-x 5 myubuntu myubuntu 4096 Jul 1 20:47 Desktop drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Documents drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Downloads -rw-rw-r-- 1 myubuntu myubuntu 13857 Jun 26 11:28 get-docker.sh drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Music drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Pictures drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Public drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Templates drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Videos
Let's get the file\directory name using awk
myubuntu@myubuntu-VirtualBox:~$ ls -l | awk '{print $9}'
Desktop
Documents
Downloads
get-docker.sh
Music
Pictures
Public
Templates
Videos
$9 is the field where the file/directory name
In awk rows are reffered as records
myubuntu@myubuntu-VirtualBox:~$ ls -l | awk '{print NR'}
1
2
3
4
5
6
7
8
9
10
myubuntu@myubuntu-VirtualBox:~$ ls -l | awk '{print NF'}
2
9
9
9
9
9
9
9
9
9
By default awk takes space as a delimiter
myubuntu@myubuntu-VirtualBox:~$ ls -l | awk '{print NR $0 NF}'
1total 482
2drwxr-xr-x 5 myubuntu myubuntu 4096 Jul 1 20:47 Desktop9
3drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Documents9
4drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Downloads9
5-rw-rw-r-- 1 myubuntu myubuntu 13857 Jun 26 11:28 get-docker.sh9
6drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Music9
7drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Pictures9
8drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Public9
9drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Templates9
10drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Videos9
myubuntu@myubuntu-VirtualBox:~$ ls -l | awk '{print $1,$4}'
total
drwxr-xr-x myubuntu
drwxr-xr-x myubuntu
drwxr-xr-x myubuntu
-rw-rw-r-- myubuntu
drwxr-xr-x myubuntu
drwxr-xr-x myubuntu
drwxr-xr-x myubuntu
drwxr-xr-x myubuntu
drwxr-xr-x myubuntu
myubuntu@myubuntu-VirtualBox:~$
myubuntu@myubuntu-VirtualBox:~$ ls -l | awk 'NR==2 {print $1,$9}'
drwxr-xr-x Desktop
myubuntu@myubuntu-VirtualBox:~$
myubuntu@myubuntu-VirtualBox:~$ ls -l | awk 'NR>1 {print $0}'
drwxr-xr-x 5 myubuntu myubuntu 4096 Jul 1 20:47 Desktop
drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Documents
drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Downloads
-rw-rw-r-- 1 myubuntu myubuntu 13857 Jun 26 11:28 get-docker.sh
drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Music
drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Pictures
drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Public
drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Templates
drwxr-xr-x 2 myubuntu myubuntu 4096 Jun 26 11:07 Videos