从文件内容中删除开头的新行和“-”

从文件内容中删除开头的新行和“-”

我有一个包含以下输出的文件。

---------- PFIZ_EXT_SEAGRCLMHISD_20141013_1.TXT: 165428

---------- PFIZ_EXT_SEBMODCHKIND_20141013_1.TXT: 0

---------- PFIZ_EXT_SECNSLDND_20141013_1.TXT: 13

---------- PFIZ_EXT_SECNSMRD_20141013_1.TXT: 15788

---------- PFIZ_EXT_SECNSNTD_20141013_1.TXT: 291825

---------- PFIZ_EXT_SECPGNPRD_20141013_1.TXT: 24129

---------- PFIZ_EXT_SEFFLD_20141013_1.TXT: 219599

---------- PFIZ_EXT_SESVYRSPD_20141013_1.TXT: 123284

您能帮我从这个文件中删除开头的新行和“-”吗?

答案1

干得好

for /f "tokens=2,3" %a in (file.txt) do @echo %a%b >> file2.txt

它将删除-文件名和数字之间的部分和空格,然后将输出写入另一个文件

附言:

我猜这是find的输出,嗯?

答案2

我已经在你之前的文章中回答过这个问题了问题

参考查找在文件中搜索文本字符串并显示找到该字符串的所有行。

find /v /c "" *.* > result.txt

怎么运行的

  • /v反转搜索(因此当我们不搜索任何内容时,我们会找到所有行)
  • /c计数匹配
  • ""不匹配任何内容
  • *.*搜索所有文件
  • > result.txt重定向输出

限制

  • 假设 Windows 行尾分隔符正常\r\n
  • 尽管 FIND 可用于扫描大文件,但它不会检测到单行上超过 1070 个字符的任何字符串(没有回车符\r),这使得它在搜索二进制或 XML 文件类型时用途有限。

为了删除多余的-空行,我们可以将上述命令包装成for如下结构:

for /f "usebackq tokens=2-3" %a in (`find /v /c "" *.*`) do echo %a %b >> result.txt

相关内容