用于从 CSV 中删除带有特定单词的行的批处理文件

Posted

技术标签:

【中文标题】用于从 CSV 中删除带有特定单词的行的批处理文件【英文标题】:Batch file to Remove lines with particular words from CSVs 【发布时间】:2021-05-27 21:21:50 【问题描述】:

您好,我有一个 CSV 目录,其中包含我不想处理的行

到目前为止,我有一个适用于所有文件的示例,它只显示某些列并复制到新的 csv

  @Echo off
  For %%F in (*.csv) do ( 
      (for /f "delims=" %%A in (%%F) do Call :Split %%A
      ) > "c:\temp\test\%%~nF_New.csv"
  )
  goto :Eof
  :Split
  Echo(%2,%3,%5

但我想用

Echo find /V "Not"

只显示没有“Not”字样的行

如果我使用下面的 find 命令,它适用于 1 个 csv。

type test.csv | find /V "Not" > new.csv

我需要对所有 csvs 目录执行此操作。

知道我如何将两者组合成 1 个批处理脚本。

谢谢

【问题讨论】:

【参考方案1】:

您好,我与 T&E 合作过,但这是给其他人的

@Echo off
For %%F in (*.csv) do ( 
    type %%F | find /V "Not" > %%F_new.csv 
)
goto :Eof

【讨论】:

【参考方案2】:

您可以一次性完成(不需要call):

@Echo off
For %%F in (*.csv) do ( 
  (for /f "tokens=2,3,5" %%A in ('findstr /v "Not" "%%F"') do echo %%A,%%B,%%C
  ) > "c:\temp\test\%%~nF_New.csv"
)

【讨论】:

以上是关于用于从 CSV 中删除带有特定单词的行的批处理文件的主要内容,如果未能解决你的问题,请参考以下文章

使用条件从 CSV 文件中删除一行

删除带有特定字符数的行

正则表达式在csv中找到缺少的双引号

将特定行的csv读入php

将 CSV 文件中的行跳过到某个单词 C#

用于在 Swift 中删除 UITableView 中的行的编辑按钮不起作用