不会awk文件操作,怎么能做个合格的黑客?

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 “line1\nline2” | awk ‘BEGIN{print “start”}

{print} END {print “END”}’

特殊变量:

例如:

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

echo –e “line1 f2 f3\nline2 f4 f5\nline3 f6 f7” \

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

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

那我来个复杂点的语句。

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

实际的应用

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

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

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

例如:

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

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

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

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

写在最后,希望大伙可以私信我,可以加群讨论。

还有就是提现祝大家中秋快乐!!!

原文链接:,转发请注明来源!