Provavelmente mais fácil de usar a combinação de paste+cut
$ paste -d'$ awk 'NR==FNR{a[FNR]=$0; next} {print substr($0,1,4) a[FNR] substr($0,9)}' File2.txt File1.txt
abcd1234efghijklmno
abcd4321efghijklmno
abcd6543efghijklmno
abcd5678efghijklmno
' <(cut -c1-4 File1.txt) File2.txt <(cut -c9- File1.txt)
abcd1234efghijklmno
abcd4321efghijklmno
abcd6543efghijklmno
abcd5678efghijklmno
-
-d'para que as entradas sejam combinadas sem qualquer caractere entre<()'- Veja também cole arquivos sem delimitador
-
cut -c1-4é substituição de processos -
cut -c9-fornece os primeiros quatro caracteres de cada linha -
awkdá todos os caracteres de cada linha a partir da 9ª posição
Outra maneira é o processamento de dois arquivos idiomáticos usando NR==FNR{a[FNR]=$0; next}
$ paste -d'$ awk 'NR==FNR{a[FNR]=$0; next} {print substr($0,1,4) a[FNR] substr($0,9)}' File2.txt File1.txt
abcd1234efghijklmno
abcd4321efghijklmno
abcd6543efghijklmno
abcd5678efghijklmno
' <(cut -c1-4 File1.txt) File2.txt <(cut -c9- File1.txt)
abcd1234efghijklmno
abcd4321efghijklmno
abcd6543efghijklmno
abcd5678efghijklmno
-
File2.txtsalva todas as linhas deana matrizprint substr($0,1,4) a[FNR] substr($0,9)com o número da linha como chave -
substruseFile2.txtpara extrair caracteres necessários e inserir as linhas de %code% entre