Suchart.Blog –> ITupstart.com

(g)awk

TODO…

gawk is a pattern scanning and processing language.

root@myubuntu:~# awk
Usage: awk [POSIX or GNU style options] -f progfile [–] file …
Usage: awk [POSIX or GNU style options] [–] ‘program’ file …
POSIX options: GNU long options:
-f progfile –file=progfile
-F fs –field-separator=fs
-v var=val –assign=var=val

…..

…..

gawk is a pattern scanning and processing language.
By default it reads standard input and writes standard output.

Examples:
gawk ‘{ sum += $1 }; END { print sum }’ file
gawk -F: ‘{ print $1 }’ /etc/passwd

=========================================

awk ‘/pattern/{Action Statement; Action Statement; …} ; /pattern/{Action Statement; Action Statement; …} …’

1 line = 1 record

field โดยดีฟอลต์แยกโดย พื้นที่ว่าง เช่น space , tab กำหนดโดยใช้ -F เช่น -F:

process ทีละ record โดยถ้า record มี pattern ที่ค้นหา ก็จะทำตาม action

ถ้ามีแต่ pattern ไม่ีมี action จะ print record

ถ้าไม่มี pattern แต่มี action ก็จะทำ action กับทุกๆ record

$0 หมายถึง ทั้ง record

$1, $2 … หมายถึง field 1, 2 …

.

Examples:

[root@mycentos ~]# ip r |awk ‘/def/{print “Default Route:” ; print $0 ;print “Default Gateway:”; print $3 }’
Default Route:
default via 192.168.1.1 dev eth0
Default Gateway:
192.168.1.1

mygentoo ~ # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 118G 5.1G 107G 5% /
udev 10M 152K 9.9M 2% /dev
/dev/sda1 99M 34M 61M 36% /boot
shm 125M 0 125M 0% /dev/shm

.
mygentoo ~ # df -h | awk ‘$1~/\/dev/’
/dev/sda3 118G 5.1G 107G 5% /
/dev/sda1 99M 34M 61M 36% /boot

.

mygentoo ~ # df -h | awk ‘$1~/\/dev/ ; $1~/\/dev/’
/dev/sda3 118G 5.1G 107G 5% /
/dev/sda3 118G 5.1G 107G 5% /
/dev/sda1 99M 34M 61M 36% /boot
/dev/sda1 99M 34M 61M 36% /boot

.

mygentoo ~ # awk -F: ‘/^root/{print “User:”,$1; print “Home Dir:”,$6 ;print “Shell:”,$7}’ /etc/passwd
User: root
Home Dir: /root
Shell: /bin/bash
.

root@myubuntu:~# which ifconfig | xargs dpkg-query -S | awk -F: ‘{print $1}’ | xargs dpkg -L
/.
/usr
/usr/sbin
/usr/sbin/arp
/usr/share
/usr/share/man
/usr/share/man/man5
….

.

Advertisements

ให้ความเห็น »

ยังไม่มีความเห็น

RSS feed for comments on this post. TrackBack URI

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

บลอกที่ WordPress.com .

%d bloggers like this: