在特定文本之间添加“ - ” - 批处理文件窗口

时间:2014-06-18 04:11:25

标签: windows batch-file csv command-line

我喜欢这样的30.000行:

23 DE ENERO 23 DE ENERO
23 DE ENERO AGUA SALUD

在ENERO(第一个)之后,我需要添加一个像' - '这样的行,所以它看起来像:

23 DE ENERO - 23 DE ENERO
23 DE ENERO - AGUA SALUD

如何在Windows上使用批处理文件执行此操作?

或者用另一种语言有更好的方法来实现这个目标吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

下面的批处理文件假定:

  • 每行只有一两个“ENERO”字样,
  • 第二个,如果有的话,就在该行的末尾。

就像你的示例数据一样!如果实际数据不同,则需要相应地调整此方法。

@echo off
setlocal EnableDelayedExpansion

(for /F "delims=" %%a in (input.txt) do (
   set "line=%%a"
   echo !line:ENERO =ENERO - !
)) > output.txt

答案 1 :(得分:2)

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
(
 FOR /f "delims=" %%a IN (q24276927.txt) DO (
  SET "line=%%a"
  SET /a start=-1
  CALL :split
 )
)>newfile.txt

GOTO :EOF

:split
SET /a start+=1
IF "!line:~%start%,5!" neq "ENERO" GOTO split
ECHO(!line:~0,%start%!ENERO - %line:*ENERO=%
GOTO :eof

我使用了一个名为q24276927.txt的文件,其中包含我的测试数据。 生成newfile.txt