Saludos.
Entiendo que quieres escribir las columnas de dos archivo en uno. Puede ser más simple pero se me ocurre lo siguiente:
Primero vemos el número de lineas:
Faltan las comillas de ejecuciónNL1=[comillas de ejecución]wc -l ARCHIVO1.txt | awk '{print $1}' [comillas de ejecución]
NL2=wc -l ARCHIVO2.txt | awk '{print $1}'
Ahora extraemos los campos que nos interesan:
De nuestro primer archivo y linea1:
COL1ARCH1=head -1 ARCHIVO1.txt | cut -d ' ' -f 1
COL2ARCH1=head -1 ARCHIVO1.txt |tail -1| cut -d ' ' -f 3
De nuestro segundo archivo y linea1:
COL1ARCH2=head -1 ARCHIVO2.txt | cut -d ' ' -f 3
COL2ARCH2=head -1 ARCHIVO2.txt |tail -1| cut -d ' ' -f 5
Hasta aquí si nuestros archivos fueran
archivo1: archivo2
uno dos
tres cuatro cinco primero segundo
tercero cuarto
quintoLos campos elegidos formarían al nuevo archivo:
echo $COL1ARCH1 $COL2ARCH1 $COL1ARCH2 $COL2ARCH2 > nuevo_archivo.txt
printuno tres tercero quintoBueno esto es con la primer linea en la segunda debemos utilizar una variable, y agregar un tail, por ejemplo para trabajar con la línea 2
head -2 archivo1.txt | tail -1
Aquí es donde entra tu FOR head -$i archivo1.txt | tail -1
La variable $i debe aumentar hasta ser igual al numero de registros NL1 si el número de registros es diferente, entonces se debería insertar un TAB en lugar del registro faltante y el FOR se debería hacer en base al número de registros mayor NL1 ó NL2
Disculpen , no me salen las comillas de ejecución
COL1ARCH1=[comillas de ejecución]head -1 ARCHIVO1.txt | cut -d ' ' -f 1[comillas de ejecución]
Bueno la idea básica ya esta, espero te sirva.
Para tu tercer punto busca información sobre EXPRESIONES REGULARES. Suerte