shell练习

1、awk详解

awk的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息

语法:awk '{pattern + action}' {filenames}

【注】

pattern 可选 指的是正则匹配,如/root/

action 可选,当时使用的时候必须加{}与模式pattern进行区分  指的是对匹配到的内容进行的操作,常见的就是printf打印输出到标准输出

filenames 可选 指的操作的文件

shell练习_第1张图片

常用:NR用来表示行号      NF用来统计列

-F用来设置分隔符,默认分隔符是换行符

输出第10行

awk 'NR == 10' file.txt      若找不到返回空

sed -n 10p file.txt -n    表示只输出匹配行,p表示Print

tail -n+10 /etc/passwd | head -1      (-n+10)表示从第10行开始输出

统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容

awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd

获取第12到31行的第一列的信息

awk  -F ":"   '{if(NR<31 && NR >12) print $1}'  /etc/passwd

查看最近登录最多的IP信息

last | awk '{S[$3]++} END{for(a in S ) {print S[a],a}}' |uniq| sort -rh

你可能感兴趣的:(shell练习)