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

根据特定的标准Windowsbatch file提取特定的行

我正在尝试编写一个简单的batch file来执行以下操作:

阅读文本文件的行; 每一行都包含一个team 。

从多个CSV文件中查找具有该条件的数据。 (每个队可以有很多行)

将结果复制到一个CSV文件中。

循环直到队伍结束。

CSV文件包含这样的数据:

"Team A",2013/06/15 02:14:58 -0400,"X","LQ3SUEEWPWKL6",005,"Team C",2011/01/14 00:00:00 -0400,"Y","LQ4STREWNBKM5",004,"Team B",2014/06/20 03:54:12 -0321,"Team A",......

该文本文件包含:

Team A Team B Team C Team D ...

这是我试过的代码

使用batch file修改find的文本

使用win批处理脚本比较SIDE和SIDE

命令提示符和cmd有什么区别?

如何获得以START命令开始的batch file的返回/退出代码

使用命令行禁用以太网连接?

FOR %%A IN (Team.txt) DO Find "%%A" *.csv > result.txt

批处理脚本多选

在Windows中批量重命名子目录

同时执行多个batch file并监视其处理是否完成

如何从DOS批处理命令发送电子邮件

在使用PowerShell的控制台中使用CMD脚本时是否存在任何基本不兼容问题?

我如何根据指定的标准提取行?

使用下面的批处理文件(test.cmd):

@echo off setlocal enabledelayedexpansion for /f "delims=" %%t in (team.txt) do ( for /f "usebackq tokens=*" %%i in (`findstr /c:"%%t" *.csv`) do ( set _line=%%i rem strip filenames from findstr output set _line=!_line:*:=%! echo !_line! >> "%%t".csv ) ) endlocal

笔记:

team.txt包含团队名称

如果某个特定团队名称有匹配的行,则使用名称团队名称 .csv创建一个输出csv文件

示例用法输出

F:test>type team.txt Team A Team B Team C Team D F:test>type *.csv 1.csv "Team A",2.csv "Team A",F:test>test processing Team A processing Team B processing Team C processing Team D F:test>type t*.csv Team A.csv "Team A",Team B.csv "Team B",Team C.csv "Team C",

进一步阅读

Windows CMD命令行的AZ索引 – 与Windows cmd行有关的所有东西的极好参考。

enabledelayedexpansion – 延迟扩展将导致变量在执行时扩展,而不是在解析时。

findstr – 在文件搜索字符串。

for / f – 循环命令针对另一个命令的结果。

语法替换 – 变量编辑/替换

在PowerShell ,您可以使用Import-Csv cmdlet。 只需指定第一列的标题以使用属性名称启用访问,使用Select-Object选择它,最后使用Out-File cmdlet将其写入文件

Import-Csv -Path 'your_source_path.csv' -Header "Team" | select -ExpandProperty Team | Out-File 'YourDestination.txt'

文件内容

Team A Team C Team B Team A Team C Team B

假设你的文本文件没有隔行的空格,因为这很奇怪:

for /f "delims=" %t in (teams-in.txt) do (grep "%t" *.csv > "%t.out")

其中grep是Windows的grep

[编辑:并不输出搜索* .csv 咳嗽同一文件夹中的.csv]

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

相关推荐