Board logo

标题: [已解决]请问在批处理里怎么用awk的if和printf [打印本页]

作者: flyegg    时间: 2016-1-23 13:05     标题: [已解决]请问在批处理里怎么用awk的if和printf

本帖最后由 flyegg 于 2016-1-25 16:38 编辑

有个文件txt1比如:
1 111.11 222.22
2 33.33 44.44
3 555.55 666.66
我想将第1列中大于1的行,把第3列减第2列得的差大于100的列出来。
awk '{if($1>1) printf"%s %.2f %.2f %.2f\n",$1,$2,$3,$4}' txt1.txt
用这个怎么运行不了?
if 和 printf 不能这样直接用?
作者: pcl_test    时间: 2016-1-23 15:09

既然是win环境使用,你就需兼顾批处理语法
gawk "{if($1>1&&($3-$2)>100)printf \"%%s %%.2f %%.2f %%.2f\n\",$0,$1,$2,$3}" a.txt
作者: flyegg    时间: 2016-1-23 15:49

谢谢,会了。
再请问一下,if里可以引用外部变量吗?比如:
把$1>1换成$1>%a?
作者: pcl_test    时间: 2016-1-23 16:19

回复 3# flyegg

可以。怎么实现?自己查资料吧
作者: flyegg    时间: 2016-1-23 16:52

谢谢,我找找,不会再请教。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2