copia texto do arquivo para outro

1

Eu tenho tentado copiar todo o texto de um arquivo para outro

O comando que estou usando é:

echo $(cat file1) > file2

file1

text
text in other line
more text in other line

Mas meu resultado tem esse formato

file2

text text in other line
more text in other line

Por que este comando não copia o arquivo1 exatamente igual ao arquivo 2 ??

    
por Gonzalo Pincheira Arancibia 19.10.2016 / 20:19

2 respostas

1

Para resolver o problema, basta usar o cp:

cp file1 file2

Para que sua solução funcione, basta incluir a frase de avaliação em " " , como:

echo "$(cat file1)" > file2

Isso acontece porque usar " " para agrupar a avaliação em $() preserva novas linhas, tabulações, espaços e, sem eles, apenas não. Então, o problema não foi cat , mas o echo

    
por Alejandro Bustos Nuñez 19.10.2016 / 20:36
0

É suficiente simplesmente cat file1 > file2 , ou use cp como Alejandro sugeriu. Se você quer ser criativo, você também pode fazer:

  • awk '{print $0 > "file1.txt"}' file2.txt
  • python -c 'import sys; f1 = open(sys.argv[1],"r"); f2 = open(sys.argv[2],"w");[f2.write(l) for l in f1];f1.close();f2.close()' /etc/passwd file1
por Sergiy Kolodyazhnyy 19.10.2016 / 21:53