10月18日任務centos
9.6/9.7 awkbash
9.6/9.7 awk命令ssh
head -n2 test.txt|awk -F ':' '{print $1}'post
head -n2 test.txt|awk -F ':' '{print $0}'排序
awk -F ':' '{print $1"#"$2"#"$3"#"$4}'console
awk '/oo/ test.txttest
awk -F ':' '/root/ {print $1,$3} /test/ {print $1,$3}' test.txtawk
awk -F ':' '$3=="0"' /etc/passwdftp
awk -F ':' '$3>="500"' /etc/passwd語法
awk -F ':' '$3>=500' /etc/passwd
awk -f ':' '$7!="/sbin/nologin"' /etc/passwd
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>1000) {print $1,$2,$3,$4}}' /etc/passwd
head -n3 /etc/passwd |awk -F ':' '{print NF}'
head -n3 /etc/passwd |awk -F ':' '{print NR}'
awk 'NR>40' /etc/passwd
awk -F ':' 'NR<20 && $1 ~ /root/' /etc/passwd
head -n3 /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@centos6 awk]# awk -F ':' '{print $1}' test.txt #打印第一段,-F表示指定分隔符,$1表示第一段 root bin [root@centos6 awk]# awk -F ':' '{print $0}' test.txt #打印所有,$0表示全部段 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@centos6 awk]# awk '{print $0}' test.txt #打印全部,至關於cat命令 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@centos6 awk]# awk '{print $1}' 1.txt #若是不指定分隔符,默認空格表示分隔符 ss 11 df [root@centos6 awk]# cat 1.txt ss dd 11 dd df ss [root@centos6 awk]# awk -F ':' '{print $1"#"$2"#"$3}' test.txt #指定中間以#爲分隔符(這種方法比較麻煩,其餘方法下邊介紹) root#x#0 bin#x#1 daemon#x#2 [root@centos6 awk]# awk '/oo/' test.txt #匹配包含oo的行 root:x:0:0:root:/root:/bin/bash lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin [root@centos6 awk]# awk -F ':' '$1 ~ /oo/' test.txt #指定第一行包含oo匹配出來 root:x:0:0:root:/root:/bin/ [root@centos6 awk]# awk -F ':' '/root/ {print $1,$3} /user/ {print $1,$3,$4}' test.txt #打印包含root的第一第三列,打印包含user的第一第三第四列。 root 0 operator 11 saslauth 499 76 user1 500 500 user2 501 501 user3 502 502 user4 503 503 [root@centos6 awk]# egrep 'root|user' test.txt root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin user1:x:500:500::/home/user1:/bin/bash user2:x:501:501::/home/user2:/bin/bash user3:x:502:502::/home/user3:/bin/bash user4:x:503:503::/home/user4:/bin/bash [root@centos6 awk]# awk -F ':' '$3==0' test.txt #指定第三段=0的行 root:x:0:0:root:/root:/bin/bash [root@centos6 awk]# awk -F ':' '$3==0 {print $1}' test.txt #指定第三段=0的行,打印出第一段內容 root [root@centos6 awk]# awk -F ':' '$3>=500 {print $0}' test.txt # 大於等於500的行,500不能加雙引號,不然表示按找阿斯瑪排序計算 user1:x:500:500::/home/user1:/bin/bash user2:x:501:501::/home/user2:/bin/bash user3:x:502:502::/home/user3:/bin/bash user4:x:503:503::/home/user4:/bin/bash [root@centos6 awk]# awk -F ':' '$7!="/sbin/nologin"' test.txt #第三段不等於/sbin/nologin的行 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 user1:x:500:500::/home/user1:/bin/bash user2:x:501:501::/home/user2:/bin/bash user3:x:502:502::/home/user3:/bin/bash user4:x:503:503::/home/user4:/bin/bash [root@centos6 awk]# awk -F ':' '$3>"5" && $3<"7"' test.txt #匹配$3 >5 <7的行,注意加引號用法 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin user1:x:500:500::/home/user1:/bin/bash user2:x:501:501::/home/user2:/bin/bash user3:x:502:502::/home/user3:/bin/bash user4:x:503:503::/home/user4:/bin/bash [root@centos6 awk]# awk -F ':' '$3>5 && $3<7' test.txt #不加引號結果 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown [root@centos6 awk]# awk -F ':' '$3>500 || $7=="/sbin/nologin"' test.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/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 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 user2:x:501:501::/home/user2:/bin/bash user3:x:502:502::/home/user3:/bin/bash user4:x:503:503::/home/user4:/bin/bash [root@centos6 awk]# awk -F ':' '$3>500 || $7 ~ /bash/' test.txt # 匹配$3>500,$7包含/bash/的行 root:x:0:0:root:/root:/bin/bash user1:x:500:500::/home/user1:/bin/bash user2:x:501:501::/home/user2:/bin/bash user3:x:502:502::/home/user3:/bin/bash user4:x:503:503::/home/user4:/bin/bash [root@centos6 awk]# awk -F ':' '{OFS="#"} $3>500 || $7 ~ /bash/ {print $1,$2,$3}' test.txt #OFS指定分隔符 root#x#0 user1#x#500 user2#x#501 user3#x#502 user4#x#503 [root@centos6 awk]# awk -F ':' '{OFS="#"} {if ($3>500) {print $1,$2,$3,$4}}' test.txt #另外一種語法 user2#x#501#501 user3#x#502#502 user4#x#503#503 [root@centos6 awk]# awk -F ':' '{OFS="#"} {if ($3>500) {print NF":" $1,$2,$3,$4}}' test.txt #NF表示多少段 7:user2#x#501#501 7:user3#x#502#502 7:user4#x#503#503 [root@centos6 awk]# awk -F ':' '{OFS="#"} {if ($3>500) {print NR":" $1,$2,$3,$4}}' test.txt #NR表示多少行 22:user2#x#501#501 23:user3#x#502#502 24:user4#x#503#503 [root@centos6 awk]# awk -F ':' '{OFS="#"} {if ($3>500) {print NR":" $0}}' test.txt 22:user2:x:501:501::/home/user2:/bin/bash 23:user3:x:502:502::/home/user3:/bin/bash 24:user4:x:503:503::/home/user4:/bin/bash [root@centos6 awk]# awk -F ':' 'NR<=10 && $1 ~ /root|sync/' test.txt #匹配前十列,第一段中包含root或者sync的行 root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync