Algo como:
head -n8 file1 | cat - file2 > file2."$$" && mv file2."$$" file2
Eu quero escrever 8 linhas de file1
no início de file2
.
Meu file1
contém as seguintes linhas:
$BQ
{ VOL @home }
database daba
relation tcdeatid
copy 1
{ version 0 }
opendb
clear
# other stuff
Meu file2
contém as seguintes linhas:
.lruno := 72
.infno := 1
writedb
clear
Meu arquivo de saída será:
$BQ
{ VOL @home }
database daba
relation tcdeatid
copy 1
{ version 0 }
opendb
clear
.lruno := 72
.infno := 1
writedb
clear
Você pode fazer isso com ferramentas padrão.
com paste
:
paste -sd'\n' file1 file2
com sed
:
sed p file1 file2
cat file1 file2 > output_file
Cat é a abreviação de concatenar, que é o que você está tentando fazer. Se você quiser manter os resultados no arquivo1, basta adicioná-los ao final:
cat file2 >> file1
Observe que no primeiro caso output_file será truncado (usando >
). Usando um duplo irá acrescentar ( >>
)
Com ed
ed file2 <<END
0r file1
w
q
END
na linha "0", leia o arquivo "file1", salve e saia
Como um marcador: printf "%s\n" "0r file1" w q | ed file2