找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 10906|回复: 4

[已解决]请问在批处理里怎么用awk的if和printf

[复制链接]
发表于 2016-1-23 13:05:28 | 显示全部楼层 |阅读模式
本帖最后由 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 不能这样直接用?
发表于 2016-1-23 15:09:24 | 显示全部楼层
既然是win环境使用,你就需兼顾批处理语法
gawk "{if($1>1&&($3-$2)>100)printf \"%%s %%.2f %%.2f %%.2f\n\",$0,$1,$2,$3}" a.txt
 楼主| 发表于 2016-1-23 15:49:20 | 显示全部楼层
谢谢,会了。
再请问一下,if里可以引用外部变量吗?比如:
把$1>1换成$1>%a?
发表于 2016-1-23 16:19:22 | 显示全部楼层
回复 3# flyegg

可以。怎么实现?自己查资料吧
 楼主| 发表于 2016-1-23 16:52:35 | 显示全部楼层
谢谢,我找找,不会再请教。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:22 , Processed in 0.017163 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表