awk

-F 指定分割符 ofs 是打印結果 print 指打印
[root@abinlinux ~]# awk -F ':' '$1=="nobody" {print $1}' 1.txt
nobody
[root@abinlinux ~]# awk -F ':' '$1=="nobody"' 1.txt 匹配一整行
nobody:x:99:99:Nobody:/:/sbin/nologin
[root@abinlinux ~]# awk -F ':' '$1=="nobady" || $7~/nolog/' 1.txt
作爲連接符 或 並且作爲連接符
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spoorrrrrrrrol/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@abinlinux ~]# awk -F ':' '$3>=500' 1.txt 判斷大於等於500
yun:x:500:500::/home/yun:/bin/bash

[root@abinlinux ~]# awk -F ':' '"$3>=500"' 1.txt
加上雙引號 不再按照數字排序 按阿斯瑪排序
rooooooooot:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@abinlinux ~]# awk -F ':' '$3>=500' 1.txt 要跟數字比的話要把雙引號去掉
[root@abinlinux ~]# awk -F ':' '$7!~/nolog/' 1.txt 不匹配nolog
rooooooooot:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/rrr_orbin:/bin/sync
[root@abinlinux ~]# awk -F ':' '$3<$4' 1.txt $3<$4的行
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spoorrrrrrrrol/mail:/sbin/nologin
[root@abinlinux ~]# awk -F ':' '$3==$4' 1.txt $3=$4 的匹配 不能寫一個等於號 一個是賦值
rooooooooot:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@abinlinux ~]# awk -F ':' 'OFS=":" ;$3=$4' 1.txt
[root@abinlinux ~]# awk -F ':' 'OFS=":" ;$3=$4' 1.txt $3=$4 3的值匹配給4 ofs以冒號分開
rooooooooot:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@abinlinux ~]# awk -F ':' 'NR<10' 1.txt 小於10的行顯示出來
NR 行
rooooooooot:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
[root@abinlinux ~]# awk -F ':' 'NR>10' 1.txt 大於10 的行顯示出來
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/goproher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@abinlinux ~]# awk -F ':' 'NR==10' 1.txt 等於 10 的行
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
[root@abinlinux ~]# awk -F ':' 'NR==10 {print $1,$7}' 1.txt 只打印指定的段
uucp /sbin/nologin
[root@abinlinux ~]# awk -F ':' '{if(NR==10) print $1,$7}' 1.txt if的用法
uucp /sbin/nologin
[root@abinlinux ~]# awk -F ':' 'OFS=":" {if(NR==10) print $1,$7}' 1.txt 以:分割符用法
uucp:/sbin/nologin
[root@abinlinux ~]# awk -F ':' '{print NF}' 1.txt 直接打印沒一行有幾段
7
7
7
7
7
[root@abinlinux ~]# awk -F ':' '{if (NF==7) print $1}' 1.txt 判斷每行是不是七段 並打印$1
rooooooooot
bin
daemon
adm
[root@abinlinux ~]# awk -F ':' 'OFS=":" ;$7=$3+$4' 1.txt
bin:x:1:1:bin:/bin:2
daemon:x:2:2:daemon:/sbin:4
[root@abinlinux ~]# awk -F ':' 'OFS=":" {$7=$3+$4; print $0}' 1.txt $0是正行
rooooooooot:x:0:0:root:/root:0
bin:x:1:1:bin:/bin:2
daemon:x:2:2:daemon:/sbin:4
adm:x:3:4:adm:/var/adm:7
lp:x:4:7:lp:/var/spool/lpd:11
[root@abinlinux ~]# awk -F ':' 'OFS=":" {$7=$3+$4; print $1,$3}' 1.txt
rooooooooot:0
bin:1
daemon:2
adm:3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章