Si es lo que querías, te tengo esta respuesta:
Supongamos que tenemos el archivo siguiente(yo lo llamé "file.txt":
Begin Column
FieldName = "Promedio"
DrillDownFieldName = ""
DrillDownReportName = ""
StoreIDFieldName = ""
Title = "Promedio"
VBDataType = vbDouble
Formula = "SUM(TransactionEntry.Quantity)/3"
ColHidden = False
ColNotDisplayable = False
FilterDisabled = False
ColWidth = 990
GroupMethod = groupmethodNone
ColFormat = "#"
ColAlignment = flexAlignLeftCenter
End Column
Begin Column
FieldName = "VtaPromedio"
DrillDownFieldName = ""
DrillDownReportName = ""
StoreIDFieldName = ""
Title = "Venta Prom"
VBDataType = vbCurrency
Formula = "SUM(TransactionEntry.Price * (TransactionEntry.Quantity/3))"
ColHidden = False
ColNotDisplayable = False
FilterDisabled = False
ColWidth = 1425
GroupMethod = groupmethodSum
ColFormat = ""
End Column
Lo trabajaremos sin espacios, para no tener conflicto con los ciclos FOR.
El script que hice, cuenta las ocurrencias, y te va pidiendo qué escribir en la línea en donde se dió la ocurrencia, algo así:
C:\>lala.bat
1 : leito
2 : gutierrez
Begin Column
FieldName = "Promedio"
DrillDownFieldName = ""
DrillDownReportName = ""
StoreIDFieldName = ""
Title = "Promedio"
VBDataType = vbDouble
Formula = "SUM(TransactionEntry.Quantity)/leito"
ColHidden = False
ColNotDisplayable = False
FilterDisabled = False
ColWidth = 990
GroupMethod = groupmethodNone
ColFormat = "#"
ColAlignment = flexAlignLeftCenter
End Column
Begin Column
FieldName = "VtaPromedio"
DrillDownFieldName = ""
DrillDownReportName = ""
StoreIDFieldName = ""
Title = "Venta Prom"
VBDataType = vbCurrency
Formula = "SUM(TransactionEntry.Price * (TransactionEntry.Quantity/gutierrez))"
ColHidden = False
ColNotDisplayable = False
FilterDisabled = False
ColWidth = 1425
GroupMethod = groupmethodSum
ColFormat = ""
End Column
C:\>
En este caso solo me pidió de 1 a 2, porque solo hubo dos ocurrencias de tipo: /3.
Aquí está el script:
for /f "tokens=1"
%%_
in ('type "file.txt"
^| findstr /v "
^$"
^| findstr /r /i /n ".*\/[0-9]"
^| find /v /c ""'
) do ( )
for /f "tokens=1 delims=:"
%%a in ('type "file.txt"
^| findstr /v "
^$"
^| findstr /r /i /n ".*\/[0-9]"'
) do ( set "ocurrencia[
!count!]=%% style="color: #448888;">a"; )
:code
for /l
%%_
in (1, 1,
%n_numbers%);
do ( set /p "string_c[
%%_]=
%%_ :
!! );
for /f "tokens=1"
%%_
in ('type "file.txt"
^| findstr /r /v "
^$"
^| find /v /c ""'
) do ( )
:show
if !count! equ !ocurrencia[% style="color: #448888;">i%]! (set /a "i+=1") findstr /v /r "^$" file.txt | sed -n "!count!p" | sed "s/\/[0-9]*/\/!string_c[% style="color: #448888;">i%]!/g"
)
Por cierto, necesitas sed para Windows, hacerlo con windows solamente sería un engorro.