微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用命令将csv文件按三列sorting?

我读了很多文章在stackoverflow,但我仍然无法做sorting。

情况是这样的:

我有一个没有标题的9列的csv文件,如下所示:

D,0000001,2016/01/01 01:00,111,0.000,0000008,10.000,NET,Computer B,0000002,2016/01/01 01:30,Computer C,0000003,2016/01/01 02:00,121,ORG,Computer E,COM,Computer

我想要的输出是2(000001),6(0000008),8(NET)列的顺序,并输出到新的csv文件,如下所示:

在Windows 10命令行中启用git

如何使用命令提示符更新不可变的js新版本..?

在Windows中的Swipl prolog清除屏幕

如何复制/剪切文件(而不是内容)到命令行中的Windows剪贴板?

使用EXIF增加序列号

C,Computer D,Computer

我已经尝试了这样的代码,但不工作:

@echo off setlocal for /F "tokens=1-9 delims=," %%a in (input.csv) do set a[%%b,%%a,%%c,%%d,%%e,%%f,%%g,%%h,%%i] =%% for /F "tokens=2-10 delims=[,]=" %%a in ('set a[') do echo %%b,%%i

有人可以帮助我吗? 我是input命令脚本的新手。

如何使用RHS上的cygwin sed使用windows set命令

单行使用Windowsbatch file的多个命令

如何按照用户input指定的次数运行一个命令?

有没有在批处理脚本的方式保持控制台打开只有从Windowspipe理器调用

如何使用Windows命令行search文件,然后用位置创build文本文档?

你的方法很好。 只是字段值的顺序不正确设置为获得所需的输出排序顺序。

@echo off if not exist input.csv goto :EOF setlocal for /F "tokens=1-9 delims=," %%a in (input.csv) do set "a[%%b,%%i]=%%" del input.csv for /F "tokens=2-10 delims=[,]=" %%a in ('set a[') do echo %%d,%%b,%%i>>input.csv endlocal

这里创建的环境变量是%%b,%%i而不是%%b,%%i当然也需要%%d,%%i输出

你几乎拥有它:

@echo off setlocal for /F "tokens=1-9 delims=," %%a in (input.csv) do set "a[%%b%%f%%h]=%%a,%%i" for /F "tokens=2 delims==" %%a in ('set a[') do echo %%a

但是,显示的结果并不像您在问题中所述的那样排序。 如果你想要%%f字段的%%f ,你可以使用这个:

@echo off setlocal EnableDelayedExpansion for /F "tokens=1-9 delims=," %%a in (input.csv) do ( set /A "invF=100000000-1%%f" set "a[%%b!invF!%%h]=%%a,%%i" ) for /F "tokens=2 delims==" %%a in ('set a[') do echo %%a

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐