Lote para leer archivos de texto y reemplazar comillas con variables en un archivo nuevo

Lote para leer archivos de texto y reemplazar comillas con variables en un archivo nuevo

Tengo listas de pizzas de clientes que guardé en 5 archivos .txt separados de mi base de datos en este formato:

Filename = 25Percent.TXT
"555-1211"
"555-1212"
"555-1223"

Cada lista es un número de teléfono entre comillas y cada lista varía en longitud.

Primera pregunta
Tengo dos conjuntos de variables que me gustaría reemplazar con cada cita en los 5 archivos de texto.
Las dos variables quedarían como:

Var A = < Discount Pizza price for phone number is "
Var B = " 25 % >

Me gustaría ejecutar un archivo por lotes que lea cada línea del archivo de texto y escriba en otro archivo de texto lo siguiente, reemplazando las comillas con las variables:

New Filename = 25Percentfinished.TXT
< Discount Pizza price for phone number is "555-1211" 25 % >
< Discount Pizza price for phone number is "555-1212" 25 % >
< Discount Pizza price for phone number is "555-1223" 25 % >

Entonces repetiría por30por ciento.txt,35por ciento.txt,40por ciento.txty finalmente50por ciento.txtarchivo.

Segunda pregunta
También me gustaría adjuntar los 5 archivos nuevos juntos.

Respuesta1

Es un forbucle simple:

for /f "tokens=*" %%a in (25Percent.txt) do (
    echo ^< Discount Pizza price for phone number is %%a 25 %%% ^>>>25Percentfinished.txt
)

Ver for /?uso. Esto procesa el archivo línea por línea, lee la línea en la variable %%ay agrega la línea modificada al otro archivo. Los <y >se escapan con ^(creando ^<y ^>) porque tienen un significado especial en el símbolo del sistema. Se %"escapa" %%%porque también es un personaje especial, pero no se puede escapar como los demás.


Puede combinar varios archivos de texto de esta manera:

copy file1.txt + file2.txt + file3.txt destination.txt

O puede realizar un bucle con typey agregar ( >>) (esto combinará todos los archivos en el directorio actual, en orden alfabético ascendente):

for %%a in (*.txt) do (
    type %%a>>destination.txt
)

Respuesta2

No especifica el sistema operativo, por lo que le proporcionaré una solución que funcionará si la tiene seddisponible.

$ sed -e 's/^\(.*\)$/< Discount Pizza price for phone number is \1 25 % >/' < 25Percent.TXT

información relacionada