Cuestión : Añadir los datos adicionales a la derecha de datos comunes entre los archivos


Tengo dos archivos donde en ambos, están iguales las posiciones de carácter 1 a 10, no obstante en el segundo archivo deseo copiar todo de la posición de carácter 101 al extremo de la línea, en el primer archivo donde están iguales los carácteres 1 a 10.

¿Está esto posible en un ambiente del DOS?

Eg.
File1:
0019283743 34 23 34 .....
2935782983 23 53 96….
0125892837 95 23 53….

File2:
0019283743  53 22 67 .... 23532.2035 235693
2935782983  64 75 74 .... 62837.2958 683023

Salida:
0019283743 34 23 34…. 23532.2035 235693
2935782983 23 53 96…. 62837.2958 683023
0125892837 95 23 53….

Como usted puede ver mientras que 1 a 10 es los mismos 11 a 100 diferencian. …. está el resto de los datos hasta la columna 100.

Estos archivos pueden ser muy grandes, anchura y longitud, eg. el número de expedientes excederá 100000 expedientes

Respuesta : Añadir los datos adicionales a la derecha de datos comunes entre los archivos

No es eficiente, pero esto es un acercamiento. Fijar los tres vars al principio a sus archivos.
El archivo de hornada está asumiendo que el valor “dominante” de los primeros 10 carbones de leña es único, por lo menos en file2. Usted conseguirá solamente la línea pasada encontrada allí para cada llave.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
@echo apagado
EnableDelayedExpansion setlocal
fijar file1=file1.txt
fijar file2=file2.txt
precisar =output.txt

copiar el nul el “%out%”
para /F “delims=” %%A del tokens=* del usebackq adentro (los “%~file1%”) hacer (
  fijar key=%%A
  ¡fijar el key=! llave: ¡~, 10!
  fijar line=%%A
  para delims=” %%B del tokens=* de /F “adentro (“findstr /B /L /c: ¡”! ¡llave! ““los %~file2%” ") hacen (
     fijar line=%%B
     ¡fijar line=%%A! línea: ¡~100!
  )
  >> ¡eco del “%~out%”! ¡línea!
)
Otras soluciones  
 
programming4us programming4us