Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/03/2015, 08:34
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Concatenar lineas de ficheros??

Yo no creo que haya un programa en la línea de comandos que pueda hacer lo que querés. Sin embargo, eso no quiere decir que no se pueda escribir un programa relativamente simple que lo haga.

Se me ocurre un programa en Python como este:
Código Python:
Ver original
  1. with open('fichero1.txt') as f1:
  2.     lineas1 = f1.readlines()
  3.  
  4. with open('fichero2.txt') as f2:
  5.     for linea in f2:
  6.         partes_linea = linea.split('.')
  7.         num = int(partes_linea[0]) # obtenemos el número al frente de la línea
  8.         resto = '.'.join(partes_linea[1:]) # reconstruimos la línea
  9.  
  10.         # modificamos la línea correspondiente del primer archivo. El -1 es porque los índices comienzan en 0, no en 1
  11.         # también eliminamos el salto de línea al final, ya que python los conserva
  12.         lineas1[num - 2 - 1] = lineas1[num - 2 - 1].strip() + ' ' + resto
  13.  
  14. with open('resultado.txt') as f_res:
  15.     f_res.write(''.join(lineas1))
A menos que quieras crear, depurar, usar y mantener un programa como el anterior, yo te diría que intentes generar fichero2.txt de tal manera que las líneas que deben concatenarse tengan el mismo número al frente. Si lo hacés de esa manera, podés usar el programa join para unirlas:

fichero1.txt
Código:
1. tomates
2. patatas
3. pimientos
4. calabazas
fichero2.txt
Código:
3. verdes
Código bash:
Ver original
  1. $ join -a 1 fichero1.txt fichero2.txt
  2. 1. tomates
  3. 2. patatas
  4. 3. pimientos verdes
  5. 4. calabazas