#!/bin/bash
df -h | grep "/dev/vda1" | awk '{printf $5 "\n"}' | cut -f 1 -d "%"
awk 'END{print "test"}{printf $2 "\n"}' student.txt
echo "指定分隔符"
cat /etc/passwd | grep "/bin/bash" | awk 'BEGIN{FS=":"}{printf $1 "\t" $3 "\n"}'
echo "根据条件筛选"
cat student.txt | grep -v "Name" | awk '$4>40{print $2}'
awk 语法:
默认使用tab或者空格分割
awk 有内置的一些函数可以调用 比如substr
awk 也可以将正则作为条件,比如
awk '/in/ {printf $2 "\n"}' student.txt
awk 一行行的读取文件里的内容 文件为$0 第一列(字段)为$1 第二列(字段)为$2
awk '(printf $2 "\t" $4 "\n"}' student.txt
df -h | awk `{print $1 "\t" $3)'
awk '条件1{动作1} 条件2{动作2}...' 文件名
条件(Pattern):
一般使用关系表达式作为条件
x > 10 判断变量 x 是否大于 10
x >= 10 大于等于
x <=10 小于等于
动作(Action):
格式化输出
流程控制语句
dfdfjkjj
printf(不确定$0打印的是否是printf命令中的参数) 中$0 代表打印的文件名.
cut比awk有些时候方便
awk命令
awk '条件1{动作1}条件2{动作2}...' 文件名
例子:
使用cut
cut -f 1,3 test.txt
使用awk
(其中的$1代表第一个字段,$3第三个字段,$0代表每一行的记录)
awk '{printf $1 "\t" $3 "\n"}' test.txt
awk是一个数据处理工具,相比于sed常常作用于一整行的处理,将一行分成数个”字段“来处理。
awk命令
awk '条件类型1{动作1}条件类型2{动作2}...' 文件名
条件(Pattern):
一般使用关系表达式作为条件,比如x>10,x<=10
动作(Action)
格式化输出
流程控制语句
举例:
awk '{printf $2 "\t" $4 "\n"}' student.txt #\t\n一定要加"" $2代表第二个字段
awk '{print $2 "\t" $4}' student.txt #print自动换行
awk执行流程
awk先读取第一行数据再判断条件,因为这里没写条件,将文件名student.txt赋值给$0,$2是第二个字段$4是第四个字段。
再读取第二行数据重复上述步骤
awk命令格式
awk命令
awk是一个数据处理工具,相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个”字段“来处理。
通常运行模式: awk ' 条件类型1{动作1} 条件类型2{动作2}...‘ 文件名
例:awk '{printf $2 "\t" $4 "\n"}' filename //第二列 第四列
awk '{print $2 "\t" $4}' filename
printf后面要接换行符"\n" print 不需要
awk 语句
awk命令:
awk是一个数据处理工具,相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个”字段“来处理。
通常运行模式: awk ' 条件类型1{动作1} 条件类型2{动作2}...‘ 文件名
例:awk '{printf $2 "\t" $4 "\n"}' filename awk '{print $2 "\t" $4}' filename
printf后面要接换行符"\n" print 不需要
awk命令的格式
1.awk '条件1{动作1}条件2{动作2}……’ 文件 其中转义符\n等需要用双引号括起来才可以生效
2.在printf中$1 代表打印第一个字段。也就是说字段是以空格为分割的。
3.其中把文件的文件名赋予了$0变量
4.print命令可以比printf命令在一行的末尾自动加入换行符
awk是一个数据处理工具,相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个”字段“来处理。
通常运行模式: awk ' 条件类型1{动作1} 条件类型2{动作2}...‘ 文件名
例:awk '{printf $2 "\t" $4 "\n"}' filename awk '{print $2 "\t" $4}' filename
printf后面要接换行符"\n" print 不需要
awk命令
#$1是文档中第一列,$2文档中第二列,依次
#print与printf区别:print会自动加换行符
记住,
cut命令用于有规律的文本。
awk '条件1{动作1} 条件2{动作2}...' 文件名
条件满足时,执行动作。