Easy way to display right-aligned with the awk command

Maciej
1 min readMay 16, 2022
Photo by Matt Duncan on Unsplash

Introduction

I this short post I will show how to work with the awk command

Example log file

Case 1

Sometimes number of characters in the column is different, so it is difficult to see. Use awk to display the columns right justified.

root@vagrant:/home/vagrant# cat test.log | awk '{printf("%10s %10s %10s %10s %10s\n",$1,$4,$5,$9,$10)}'                                                       2018/8/5 1927402673     273564 lsjdnh:666 snhdgs:000
2018/9/15 72946629773 285275 lsjdnh:342 snhdgs:111
2018/10/5 8203749274 196283 lsjdnh:124 snhdgs:222
2018/11/21 9253772253 197026 lsjdnh:634 snhdgs:333
2019/1/2 8241196002 102836 lsjdnh:745 snhdgs:444
root@vagrant:/home/vagrant#

Case 2

If the date notation in the log file is as follows, it may be difficult to see. In such a case, it will be easier to see if you convert the date format to yyyy/mm/dd with the awk command and display it.

root@vagrant:/home/vagrant# cat test.log | awk -F '[ /]' '{printf("%4d/%02d/%02d %08s %10s %10s %6s %7s %3s %3s %10s %10s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)}'
2018/08/05 00:03:10 [LEVEL4] 1927402673 273564 KEY001 asd zxc lsjdnh:666 snhdgs:000
2018/09/15 10:04:11 [LEVEL4] 72946629773 285275 KEY002 asd zxc lsjdnh:342 snhdgs:111
2018/10/05 21:31:05 [LEVEL4] 8203749274 196283 KEY0003 asd zxc lsjdnh:124 snhdgs:222
2018/11/21 08:13:40 [LEVEL4] 9253772253 197026 KEY0004 asd zxc lsjdnh:634 snhdgs:333
2019/01/02 22:03:22 [LEVEL4] 8241196002 102836 KEY0005 asd zxc lsjdnh:745 snhdgs:444
root@vagrant:/home/vagrant#

--

--

Maciej

DevOps Consultant. I’m strongly focused on automation, security, and reliability.