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