加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell训练day5 8.19

发布时间:2020-12-16 01:43:37 所属栏目:安全 来源:网络整理
导读:AWK [[email?protected] awk]# awk -F ‘:‘ ‘{print $1}‘ test.txt root bin daemon adm $1 表示第一段,$0 表示全部 ,如果没有指定分隔符,使用空格作为分隔符。 [[email?protected] awk]# awk ‘{print $1}‘ 1.txt a ic 111 [[email?protected] awk]#
AWK

[[email?protected] awk]# awk -F ‘:‘ ‘{print $1}‘ test.txt
root
bin
daemon
adm

$1 表示第一段,$0 表示全部 ,如果没有指定分隔符,使用空格作为分隔符。

[[email?protected] awk]# awk ‘{print $1}‘ 1.txt
a
ic
111

[[email?protected] awk]# awk -F ‘:‘ ‘{print $1,$3,$4}‘ test.txt
root 0 0
bin 1 1
daemon 2 2
adm 3 4

[[email?protected] awk]# awk -F ‘:‘ ‘{print $1"#"$3"#"$4}‘ test.txt 使用#来替换空格
root#0#0
bin#1#1
daemon#2#2
adm#3#4
lp#4#7
sync#5#0
shutdown#6#0

[[email?protected] 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
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

[[email?protected] awk]# awk -F ‘:‘ ‘$1~/oo/‘ test.txt --打印第一段带oo的行
root:x:0:0:root:/root:/bin/bash

[[email?protected] awk]# awk -F ‘:‘ ‘/root/ {print $1,$3} /user/ {print $1,$4}‘ test.txt
root 0
operator 11
tss 59 59
rpcuser 29 29
[[email?protected] awk]# grep -E ‘root|user‘ test.txt
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

[[email?protected] awk]# awk -F ‘:‘ ‘/root|user/ {print $0}‘ test.txt
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

[[email?protected] awk]# awk -F ‘:‘ ‘$3==0 {print $0}‘ test.txt
root:x:0:0:root:/root:/bin/bash

[[email?protected] awk]# awk -F ‘:‘ ‘$3>=1000 {print $0}‘ test.txt ---注意这里的1000如果是数字就不应该加""
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

awk -F ‘:‘ ‘$7!="/sbin/nologin"‘ /etc/passwd

awk -F ‘:‘ ‘$7!="/sbin/nologin"‘ /etc/passwd
root:x:0:0:root:/root:/bin/bash

[[email?protected] awk]# awk -F ‘:‘ ‘$3<$4 {print$3,$4}‘ test.txt
3 4
4 7
8 12
12 100
14 50
[[email?protected] awk]# awk -F ‘:‘ ‘$3>"5" && $3<"7"‘ test.txt
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

[[email?protected] awk]# awk -F ‘:‘ ‘$3>1000 || $7=="/bin/bash"‘ /etc/passwd
root:x:0:0:root:/root:/bin/bash
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

head -5 /etc/passwd |awk -F ‘:‘ ‘{OFS="#"} {print $1,$4}‘
OFS 指定print的分隔符

[[email?protected] system]# head -5 /etc/passwd |awk -F ‘:‘ ‘{OFS="#"} {print $1,$4}‘
root#0#0
bin#1#1
daemon#2#2
adm#3#4
lp#4#7

可以带if
[[email?protected] system]# awk -F ‘:‘ ‘{OFS="#"} {if ($3>1000) {print $1,$2,$4}}‘ /etc/passwd
nfsnobody#x#65534#65534

NR表示行

NF表示段

awk -F ‘:‘ ‘{print NR":" $0}‘ test.txt

awk -F ‘:‘ ‘{print NF":" $0}‘ test.txt
7:root:x:0:0:root:/root:/bin/bash
7:bin:x:1:1:bin:/bin:/sbin/nologin
7:daemon:x:2:2:daemon:/sbin:/sbin/nologin
7:adm:x:3:4:adm:/var/adm:/sbin/nologin

awk -F ‘:‘ ‘NR<=10‘ test.txt

[[email?protected] awk]# awk -F ‘:‘ ‘NR<=10‘ test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

awk -F ‘:‘ ‘NR<=10 && $1 ~/root|sync/‘ test.txt ~表示包含

awk -F ‘:‘ ‘NF==6 && $1 ~/root|sync/‘ test.txt

head -n 3 /etc/passwd |awk -F ‘:‘ ‘$1="root"‘

head -n 3 test.txt |awk -F ‘:‘ ‘{OFS=":"} $1="root"‘

awk -F ‘:‘ ‘{(tot=tot+$3)}; END {print tot}‘ /etc/passwd ---求和一列

awk -F ‘:‘ ‘{if ($1=="root") {print $0}}‘ /etc/passwd

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读