[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 CrLf 于 2015-2-27 19:21 编辑

回复 4# bailong360


    直接用 data[$1,$2,$3,$4,$5] 就好,这里的 , 相当于一个文件分割符

TOP

本帖最后由 CrLf 于 2015-2-27 22:31 编辑

gawk -F"," "$6>data[$1,$2,$3,$4,$5]{data[$1,$2,$3,$4,$5]=$0} END{for (line in data)print data[line]>\"$new.txt\"}" a.txt
代码有误,更正见 10 楼
1

评分人数

TOP

本帖最后由 CrLf 于 2015-2-27 22:30 编辑

卧槽,大伙没发现我写错了吗,用 $6 和 $0 来比较的...
修改下,还是像 4 楼那样用逗号分隔吧
  1. gawk -F"," -v d="," "$6>data[$1 d $2 d $3 d $4 d $5]{data[$1 d $2 d $3 d $4 d $5]=$6} END{for (line in data)print line d data[line]}" a.txt
复制代码
或用 gsub
  1. gawk -F"," "$6>data[$1,$2,$3,$4,$5]{data[$1,$2,$3,$4,$5]=$6} END{for (line in data){l=line;gsub(/\x1c/,\",\",l);print l \",\" data[line]}}" a.txt
复制代码
分隔符不同,排序居然还不一样
1

评分人数

TOP

本帖最后由 CrLf 于 2015-2-28 13:36 编辑

回复 8# yiwuyun


    a[split(data[$1$2],a,\",\")] 好精巧!可以去掉 \",\",因为你已经设了 FS 了
    但 $1$2 是没有分隔符的,怎么区分 SSS,GGG 和 SSSG,GG 呢?
1

评分人数

TOP

返回列表