Sed Usage: Adicione shebang faltando na primeira linha do script [duplicate]

0

Eu tenho um script *.sh que está faltando o shebang da primeira linha. Posso corrigir isso com sed ?

    
por tjt263 28.09.2016 / 21:11

2 respostas

2

Insira ( i ) o shebang com sed , em operação local:

sed -i '1 i #!/bin/bash' file.sh

Com o backup do arquivo original com a extensão .bak :

sed -i.bak '1 i #!/bin/bash' file.sh

Substitua #!/bin/bash pelo shebang real desejado.

Exemplo:

% cat foo.sh
echo foobar

% sed '1 i #!/bin/bash' foo.sh 
#!/bin/bash
echo foobar
    
por 28.09.2016 / 21:30
2

Usando bash e cat (não no local):

cat <(echo '#!/bin/sh') foo.sh

Ou no local usando o GNU awk > = 4.1:

awk -i inplace 'BEGINFILE{print "#!/bin/sh"}{print}' foo.sh

    

por 28.09.2016 / 21:23