printf和awk

来源:互联网 发布:云豹直播系统源码 编辑:程序博客网 时间:2024/06/06 20:06

文件的格式化与相关处理

格式化打印 printf

#printf ‘%10s %5i %5i %8.2f \n’ $(cat printf.txt)

由于printf并不是管道命令,因此得通过类似上面的的功能,将文件内容先提出来给printf作为后续的数据才行。

%10s :长度为10个字符的字符串

%5i:长度为5个字符的数字字段

%8.2f:长度为8个字符(00000.00)的具有小数点的字段

 

awk是一个好用的数据处理工具,主要处理每一行的字段内的数据 ,默认的字段的分隔符为空格键或tab

#last -n 5 | awk ‘{print $1 “\t lines: ” NR “\t columes: ” NF}’

$0:代表一整行数据

$1:代表第一列数据

$2:代表第二列数据

NF:第一行$0拥有的字段总数

NR:目前awk所处理的是“第几行”的数据

FS:目前的分隔字符,默认是空格键

#cat pay.txt | awk ‘NR==1{printf “%10s %10s %10s %10s \n”,$1,$2,$3,$4, “Total” }enter

NR>=2{total=$2+$3+$4enter

printf “%10s %10d %10d %10d %10.2f\n”,$1,$2,$3,$4,total}’

所有awk的动作,如果有需要多个命令辅助时,可利用分号或者直接以enter来隔开每个命令,在awk中,变量可以直接使用,不需加$符号,如上total变量

0 0
原创粉丝点击