> 兴趣爱好
awk命令使用什么变量存储行号(awk命令用法)
导语:awk命令使用
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/null 1.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<$1?min:$1}END{print min}'
求最大值:
sed '/^$/d' test.txt|awk 'NR==1{max=$1;next}{max=max>$1?max:$1}END{print max}'
其中sed '/^$/d' 表示过滤空行
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小婷创作整理编辑!