awk是一种编程语言,逐行读取文本和数据,缺省情况下将每行切片为空格,并分离部分进行分析和处理。
命令格式: awk [-f field-separator ] ' commands ' input-file ( s ),其中commands是真正的awk命令。
- f域分隔符是可选的。
input-file(s )是要处理的文件。
在awk中,文件的每一行中由域分隔符分隔的每一项都称为域。
通常,如果未指定-F域分隔符,则缺省域分隔符为空格。
awk读取拆分的记录n换行符,将指定的记录拆分为字段并填充字段。
$0表示所有域,$1表示第一个域,$n表示第n个域。
简单的例子:
awk-f '=' ' { print $2} '2/dev/null1. txt将文件1.txt的内容通过cat用管道输出到awk,awk以=方式分割数据,打印第二列( $2)中的数据
实际使用案例:
打印计算机上所有非系统用户和相应的主目录。
cat/etc/passwd|awk-f ':' begin { print ' name,home'}if($3=500 ) ( {print $1),' $6}end{print '
获取test.txt文件的列中的最大最小值和最小值
求最小值:
sed '/^ $/d ' test.txt|awk ' NR==1{ min=$ 1; next } { min=min $1min:$1} end { print min } '求出最大值:
sed '/^ $/d ' test.txt|awk ' NR==1{ max=$ 1; next } { max=max $1max:$1} end { print max } '其中sed '/^$/d '表示过滤空行