範例文件1 名稱:awktest 正常檢視文件內容如下
[root@rosalie ~]# cat awktest
name tel
tina 0911111111
nono 0922222222
ken 0933333333
piggy 09444444
讀取第一欄內容:awk '{print $1}' 文件名
讀取第二欄內容:awk '{print $2}' 文件名
[root@rosalie ~]# awk '{print $1}' awktest
name
tina
nono
ken
piggy
去掉表頭讀取第二欄內容:awk 'NR!=1{print $2}' 文件名
[root@rosalie ~]# awk 'NR!=1{print $2}' awktest
0911111111
0922222222
0933333333
09444444
只列出含有091111111的列:awk '$0~/0911111111/{print}' 文件名
[root@rosalie ~]# awk '$0 ~ /0911111111/{print}' awktest
tina 0911111111
列出不含ken的列但含表頭:awk '$1 !~/ken/' 文件名
[root@rosalie ~]# awk '$1 !~ /ken/' awktest
name tel
tina 0911111111
nono 0922222222
piggy 09444444
列出不含ken的列,且不含表頭:awk '$1 !~/ken/' 文件名|grep -v "name"
[root@rosalie ~]# awk '$1 !~ /ken/' awktest |grep -v "name"
tina 0911111111
nono 0922222222
piggy 09444444
範例文件2 名稱:passwd 文件內容如下
範例文件2 名稱:passwd 文件內容如下
[root@rosalie ~]# cat /etc/passwd
nobody:x:99:99:Nobody:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
mysql:x:500:500::/home/mysql:/bin/bash
rosalie:x:501:500::/home/rosalie:/bin/bash
取帳號欄位,以-F":"為區隔""內的符號可變,例如空白或是其他符號,此範例以:來分隔,
意思是取:之後的第一欄(第一種作法):awk -F":" '{print $1}'
意思是取:之後的第一欄(第一種作法):awk -F":" '{print $1}'
[root@rosalie ~]# awk -F":" '{print $1}' /etc/passwd
nobody
vcsa
saslauth
postfix
sshd
ntp
tcpdump
mysql
rosalie
以":"為區隔取第一欄f1(第二種作法):cut -d ":" -f1
[root@rosalie ~]# cut -d ":" -f1 /etc/passwd
nobody
vcsa
saslauth
postfix
sshd
ntp
tcpdump
mysql
rosalie
在取得的欄位上填加字串"NAME ":
awk -F ":" '{print "NAME " $1}'
[root@rosalie ~]# awk -F ":" '{print "NAME " $1}' /etc/passwd
NAME nobody
NAME vcsa
NAME saslauth
NAME postfix
NAME sshd
NAME ntp
NAME tcpdump
NAME mysql
NAME rosalie
取第及四及三欄:awk -F ":" '{print $4,$3}'
[root@rosalie ~]# awk -F ":" '{print $4,$3}' /etc/passwd
99 99
69 69
76 499
89 89
74 74
38 38
72 72
500 500
500 501
取最後一欄:awk -F":" '{print $(NF)}'
[root@rosalie ~]# awk -F ":" '{print $(NF)}' /etc/passwd
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/bin/bash
/bin/bash
沒有留言:
張貼留言