本以为只是个命令,学起来这就是语言么,参看man手册多试吧
格式
awk 'pattern{action}' <file>
A pattern can be:
BEGIN
END
expression
示例:
awk '{print $0}' awk.txt
print是打印命令,awk.txt是我们为测试建的文件,内容如下:
aa:sss ddd fff|ff
qwe:d44 88 kkk|099
sdd:6 ff ff ff
ddd|lll:fff

-
$变量awk会根据空格或制表符,将每一行分成若干字段$0:当前行整行;$1:第一个字段;$2:第二个字段;$3:第三个字段;…
指定分隔符
awk默认是以空格或制表符分割,也可使用-F指定分隔符
awk -F ':' '{ print $1 }' filepath

输入输出
-
输入
getlinegetline < filecommand | getlinecommand | getline var -
输出
print:参数可以是变量、数值或字符串
printf:格式化输出

内置变量
除了$变量以外,awk还定义了其他一些变量
ARGC 命令行参数个数
ARGV 命令行参数(awk/filepath)
CONVFMT 数据转换为字符串的格式"%.6g".
ENVIRON 环境变量集合.
FILENAME 当前输入的文件名.
FS 输入的数据域之间的分隔符,默认空格.
NR 当前输入行数
NF 当前行被分割的列数,$NF代表最后一个字段,$(NF-1)代表倒数第二个字段...
OFS 输出之间的分割符, 默认空格.
OFMT 数值输出格式"%.6g".
ORS 输出之间的分割符,默认换行.
RS 输入之间的分割符,默认换行.
RLENGTH match函数匹配的字符串长度.
RSTART match函数匹配的字符串的第一个字符的位置.


内置函数
gsub(r,s,t)index(s,t)length(s)match(s,r)split(s,A,r)tolower(s)toupper(s)mktime(specification)systime()sqrt(x)- …(参看man awk)
控制流程语句
if ( expr ) statementif ( expr ) statement else statementwhile ( expr ) statementdo statement while ( expr )for ( opt_expr ; opt_expr ; opt_expr ) statementfor ( var in array ) statementcontinuebreak











![[附源码]计算机毕业设计的高校资源共享平台Springboot程序](https://img-blog.csdnimg.cn/740c81eaccc440a7b03ab187318401c3.png)







