Use isto:
header='/*\n * Copyright (c) 2015 by MyCompany, Inc.\n * All rights reserved.\n */\n'
find ~/my-proj/*.sh -exec sed -i "1s|^|$header|" {} \;
Notas:
-
O shell substituirá o valor de
$header
diretamente no comando sed. Isso permite a injeção de comandos arbitrários no script sed. Não não faça isso, a menos que você confie na origem doheader
. -
O cabeçalho contém
/
caracteres. Esses caracteres precisam ser escapados ou então o comando substituto deve usar um delimitador diferente. Acima,|
foi usado como delimitador. -
É uma boa prática usar letras maiúsculas ou minúsculas para variáveis shell. O sistema usa maiúsculas para suas variáveis e, embora não seja um problema nesse caso, você não deseja sobrescrever acidentalmente um.
Exemplo
Para ilustrar o comando sed revisado, considere este arquivo de teste:
$ cat file
1
2
3
O comando sed produz:
$ sed "1s|^|$header|" file
/*
* Copyright (c) 2015 by MyCompany, Inc.
* All rights reserved.
*/
1
2
3