Para adicionar qualquer string ao início de cada linha em um arquivo, você pode usar
sed -i 's#^#/home/info/#' file
Isso faria uma edição no local do arquivo chamado file
e inseriria a string /home/info/
no início de cada linha.
No FreeBSD ou derivados (como macOS), você teria que usar -i ''
em vez de -i
(veja também " Como posso obter portabilidade com sed -i (edição no local)? ").
Os #
são usados como delimitadores da expressão sed
aqui, pois o texto de substituição contém /
. Nós também poderíamos ter escrito
sed -i 's/^/\/home\/info\//' file
mas isso é um pouco difícil de ler e escrever (ver Wikipedia: Síndrome do palito inclinado ).
Como sempre, execute sed
sem a opção -i
primeiro para ter certeza de que ele faz a coisa correta.
Para sistemas em que sed
não suporta -i
para edição no local, você precisará gravar o resultado em um arquivo temporário e substituir o original por esse arquivo:
sed 's#^#/home/info/#' <file >file.new &&
mv file.new file
Isso substituiria o arquivo original pelo arquivo modificado se o comando sed
fosse bem-sucedido.
Se você precisar manter os metadados, como permissões de propriedade e de arquivo, faça como
cp file file.tmp &&
sed 's#^#/home/info/#' <file.tmp >file &&
rm file.tmp