搜索
写经验 领红包

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' 表示过滤空行

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小婷创作整理编辑!