奇怪的awk for win

sh/bash/dash/ksh/zsh等Shell脚本
回复
谢宝良
帖子: 1983
注册时间: 2010-05-01 21:23

奇怪的awk for win

#1

帖子 谢宝良 » 2016-04-14 15:39

awk for win基本跟linux下的awk一样,唯独那三个符号怎么也弄不成功。

比如:awk "{print $1 "\t" $4}" file

肯定出问题。

还有就是printf("%.2f",$2) 也肯定出问题。真是压抑,在linux下,好简单的东东,怎么就失灵了。

awk for win能计算,能整理数据,就是这个格式输出总是出错。有人能帮帮忙吗?太需要了。
谢宝良
帖子: 1983
注册时间: 2010-05-01 21:23

Re: 奇怪的awk for win

#2

帖子 谢宝良 » 2016-04-14 16:04

意思是无法设定:tab,回车等字符。看来没人玩这东东的。
谢宝良
帖子: 1983
注册时间: 2010-05-01 21:23

Re: 奇怪的awk for win

#3

帖子 谢宝良 » 2016-04-14 18:48

试验了一整天,终于知道解决方法了:
要先声明变量
-v tab="\t"
然后才能使用。但在批处理里边,遇到了%这个难题,批处理已经使用了%,printf也要用%,这样就冲突了。
看看怎么才能恢复%的原意思。
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 奇怪的awk for win

#4

帖子 lilydjwg » 2016-04-27 21:44

去找一个 bash/zsh 用吧。
头像
StarWingsss
帖子: 4
注册时间: 2016-07-22 10:50
系统: centos6.5

Re: 奇怪的awk for win

#5

帖子 StarWingsss » 2016-08-04 13:59

awk "{print $1 "\t" $4}" file 在linux不是用双引号的awk '1 {print $1 "\t" $4}' file
意思是对
1、file一行一行地读取
2、执行{}内的内容永远条件为真
3、打印每一行第一列的元素,接着打印一个tab,接着打印第四列的元素
4,重复步骤1,直到读取完毕所有行

printf和C语言的差不多
printf("%.2f",$2),对每第二列元素转换成float格式输出,并保留两位小数点

win的没用过 :Stop
回复