Eu estou tentando adicionar uma linha de texto ao início de um arquivo de texto (na verdade não texto, mas apenas duas barras invertidas).
Estou tentando o seguinte, que encontrei nesta resposta: Adicionar linhas ao início e ao final do arquivo enorme
$ sed -i '1i\'"$\" $Simdata.txt
No entanto, parece que não consigo funcionar.
Quando eu uso o acima, recebo o erro:
sed: 1: ".txt": invalid command code .
Eu tentei sem o final do txt, mas depois recebi este erro:
sed: -i may not be used with stdin
Eu também tentei esta linha de código, que eu encontrei em outro lugar:
$ sed -i '1i \' Simdata.txt
sed: 1: "Simdata.txt": invalid command code S
ATUALIZAÇÃO:
@don_crissti, sua primeira solução é o que eu quero fazer. No entanto, não parece funcionar como pretendido.
$ cat Simdata.txt
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
$ sed '1i\
> \\' Simdata.txt
\abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
$ cat Simdata.txt
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
Portanto, o arquivo não é atualizado. Eu preferiria não imprimir o arquivo, apenas atualizar o arquivo ou imprimir para um novo. Além disso, eu fiz um erro de digitação bobo: eu realmente gostaria de adicionar duas barras.
O que eu estou procurando fazer é o seguinte.
Eu tenho um arquivo parecido com isto:
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
Primeiro, quero adicionar // ao início do arquivo:
//
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
Em seguida, adicione um nome exclusivo após cada //:
// text 1
abcdefghijkabcdefghijk
// text 2
abcdefghijkabcdefghijk
// text 3
abcdefghijkabcdefghijk
e salve-o em um novo arquivo, sem alterar o arquivo original. Portanto, a pergunta acima visava descobrir o primeiro passo.