2018-03-14 Linux學習
阿新 • • 發佈:2018-03-14
Linux學習9.6 awk (上)
awk 示例 head -n2 test.txt|awk -F ‘:‘ ‘{print $1}‘ head -n2 test.txt|awk -F ‘:‘ ‘{print $0}‘ awk -F ‘:‘ ‘{print $1"#"$2"#"$3"#"$4}‘ awk ‘/oo/‘ test.txt awk -F ‘:‘ ‘$1 ~ /oo/‘ test.txt awk -F ‘:‘ ‘/root/ {print $1,$3} /test/ {print $1,$3}‘ test.txt awk -F ‘:‘ ‘$3=="0"‘ /etc/passwd awk -F ‘:‘ ‘$3>="500"‘ /etc/passwd awk -F ‘:‘ ‘$3>=500‘ /etc/passwd awk -F ‘:‘ ‘$7!="/sbin/nologin"‘ /etc/passwd -F 以...為分隔符 無需加脫義字符 數學運算時,字符串需要加上雙引號 [root@aming-01 awk]# head -2 text.txt|awk -F ‘:‘ ‘{print $1}‘ root bin [root@aming-01 awk]# head -2 text.txt|awk -F ‘:‘ ‘{print $0}‘ root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@aming-01 awk]# head -2 text.txt|awk -F ‘:‘ ‘{print $1"#"$2"#"$3}‘ root#x#0 bin#x#1 [root@aming-01 awk]# awk ‘/roo/‘ text.txt root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin [root@aming-01 awk]# awk -F ‘:‘ ‘$1 ~ /roo/‘ text.txt root:x:0:0:root:/root:/bin/bash [root@aming-01 awk]# awk -F ‘:‘ ‘/root/ {print $1,$3} /lp/ {print $1,$3,$4}‘ text.txt root 0 lp 4 7 operator 11 [root@aming-01 awk]# awk -F ‘:‘ ‘/root|lp/ {print $1,$3}‘ text.txt root 0 lp 4 operator 11 [root@aming-01 awk]# awk -F ‘:‘ ‘/root|lp/ {print $0}‘ text.txt root:x:0:0:root:/root:/bin/bash lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin [root@aming-01 awk]# awk -F ‘:‘ ‘$3==0 {print $1}‘ text.txt root [root@aming-01 awk]# awk -F ‘:‘ ‘$3>=500 {print $0}‘ text.txt polkitd:x:999:997:User for polkitd:/:/sbin/nologin [root@aming-01 awk]# awk -F ‘:‘ ‘$7!="/sbin/nologin" {print $0}‘ text.txt root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt
9.7 awk (下)
OFS 打印時指定的分隔符 NR 行 NF 段 示例 awk -F ‘:‘ ‘$3<$4‘ /etc/passwd awk -F ‘:‘ ‘$3>"5" && $3<"7"‘ /etc/passwd awk -F ‘:‘ ‘$3>1000 || $7=="/bin/bash"‘ /etc/passwd head -5 /etc/passwd | awk -F ‘:‘ ‘{OFS="#"} {print $1,$3,$4}‘ awk -F ‘:‘ ‘{OFS="#"} {if ($3>500) {print $1,$2,$3,$4}}‘ /etc/passwd head -3 /etc/passwd | awk -F ‘:‘ ‘{print NF}‘ head -3 /etc/passwd | awk -F ‘:‘ ‘{print NR}‘ awk ‘NR>40‘ /etc/passwd awk -F ‘:‘ ‘NR<20 && $1 ~ /roo/‘ /etc/passwd head -n 3 /etc/passwd | awk -F ‘:‘ ‘$1="root"‘ awk -F ‘:‘ ‘{(tot=tot+$3)}; END {print tot}‘ /etc/passwd awk -F ‘:‘ ‘{if($1=="root") {print $0}}‘ /etc/passwd [root@aming-01 awk]# awk -F ‘:‘ ‘$3<$4‘ text.txt 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/spool/mail:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [root@aming-01 awk]# awk -F ‘:‘ ‘$3>5 && $3<7‘ text.txt shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown [root@aming-01 awk]# awk -F ‘:‘ ‘$3<5 && $7 ~ /bash/‘ text.txt root:x:0:0:root:/root:/bin/bash [root@aming-01 awk]# awk -F ‘:‘ ‘{OFS="#"} $3>500 || $7 ~ /bash/ {print $1,$3,$7}‘ text.txt root#0#/bin/bash polkitd#999#/sbin/nologin [root@aming-01 awk]# awk -F ‘:‘ ‘{OFS="#"} {if($3>500 && $7 ~ /nologin/) {print $1,$3,$7}}‘ text.txt polkitd#999#/sbin/nologin [root@aming-01 awk]# awk -F ‘:‘ ‘NR<=3‘ text.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin [root@aming-01 awk]# awk -F ‘:‘ ‘NR<=10 && $1 ~ /root|sync/‘ text.txt root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync [root@aming-01 awk]# head -3 text.txt | awk -F ‘:‘ ‘$1="root"‘ root x 0 0 root /root /bin/bash root x 1 1 bin /bin /sbin/nologin root x 2 2 daemon /sbin /sbin/nologin [root@aming-01 awk]# awk -F ‘:‘ ‘{(tot=tot+$3)}; END {print tot}‘ text.txt 1788 [root@aming-01 awk]# awk -F ‘:‘ ‘{if($1=="root") {print $0}}‘ text.txt root:x:0:0:root:/root:/bin/bash
2018-03-14 Linux學習