awk命令
Posted learnwhileucan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk命令相关的知识,希望对你有一定的参考价值。
1、应对一般的字符串截取,cut命令也可以完成,但是cut有很大局限性,无法识别多个空格
cut命令的一般格式:cut -d " " -f 5 (以空格为分隔符,截取第五个字符)
举个例子:
df -h | cut -d " " -f 5
这个输出的结果会为空,因为df -h 由于他本身的格式,会出现多个空格,cut会认为每一个空格都是一个分隔符,这个截取到的第五个字符也是众多空格当中的一个
在这种情况下,就需要使用更加复杂的awk命令
awk命令
awk的读取数据形式是按行读取,但是按列处理
一般语法: awk ‘条件1{动作1}条件2{动作2} ...‘ 文件名
例子:
student.txt文件
ID Name php Linux mysql Average
1 xiaoming 82 95 86 87.66
2 xiaohong 74 96 87 85.66
3 xiaoli 99 83 93 91.66
awk ‘{printf $2 " " $6 " "}‘ student.txt # 注意printf前面有大括号,代表printf是动作1,动作1前面没有条件1,代表这个动作对整个文件执行 # $2表示第二列,$6表示第六列,所以awk的工作模式是先读取第一行,截取第二列 (Name),和第六列(Average),如果是$0,则截取整个第一行 # 表示一个tab, 表示换行 #综上,这个命令的意思是截取整个文件第二列,打个tab,再截取第六列,然后换行,所以结果哟为:
Name Average
xiaoming 87.66
xiaohong 85.66
xiaoli 91.66
以上是关于awk命令的主要内容,如果未能解决你的问题,请参考以下文章