<返回更多

黑客必学的awk文件操作命令工具

2019-09-17    
加入收藏

awk是文本三剑客之一,其实awk是一种语言,awk被设计用于数据流。它非常有趣,其原因在于它可以对列和行进行操作。例如数组,函数,这是它和C语言有相同地方。

Awk基本结构:

Awk ‘BEGIN{ print“start”} pattern {commands} END {print “end“}

一个awk脚本通常有3部分构成;BEGIN语句块、END语句块和能够使用模式匹配的通用语句块。着3部分是可选的。它们中任何一部分都可以不出现再脚本中。脚本通常会被包含在单引号和双引号中。

Awk的工作方式:

1. 执行BEGIN{commands}语句块中的语句。

2. 从文件或stdin中读取一行,然后执行pattern{commands}。重复这个过程,直到文件全部被读取完毕。

3. 当读到输入流末尾时,执行END{commands}语句块。

这就类似while循环,每读一行时,它就会检查该行和提供的样式是否匹配。样式本身可以是正则表达式、条件以及匹配范围等。如果当前匹配该样式,则执行{}中的语句。

echo –e “line1nline2” | awk ‘BEGIN{print “start”}

{print} END {print “END”}’

黑客必学的awk文件操作命令工具

 

特殊变量:

黑客必学的awk文件操作命令工具

 

例如:

echo {1..10} | awk –v FS=” ”’{print $1,$3}’

黑客必学的awk文件操作命令工具

 

echo –e “line1 f2 f3nline2 f4 f5nline3 f6 f7”

awk ‘{ “Line no:”NR”,No of fields:”NF,””$0”=$0,

“$1=”$1,”$2=”$2,”$3=”$3}’

黑客必学的awk文件操作命令工具

 

那我来个复杂点的语句。

seq 5 | awk ‘BEGIN{sum=0;print “Summation:”}{print $1”+”;sum+=$1} END {print “==”;print sum}’

黑客必学的awk文件操作命令工具

 

实际的应用

当然有的人说就这样有啥了不起的啊,来点实用的吧!!!

那好,就来点实用的!!!

linux有个passwd的文件,里面存着各个用户的账户密码来着

例如:

黑客必学的awk文件操作命令工具

 

像这样的排版一定看着头大,不急来看看awk的威力吧!

awk –F: ‘{print $1”t”$6}’ /etc/passwd

黑客必学的awk文件操作命令工具

 

awk‘/^r..t/{print $0}’ /etc/passwd 满足r..t这种形式后才打印。像r..t这种形式的也是正则表达式,大伙也可以查查关于正则表达式。

黑客必学的awk文件操作命令工具

 

这个就是Linux的命令之美,一条简单的命令可以把你想要的东西给展示出来,美剧里的大黑客基本就是敲命令,你想想要是一个点鼠标的黑客,那该多low啊!!

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>