Tengo un *.sh
guión al que le falta el tinglado de la primera línea. ¿Puedo arreglarlo con sed
?
Respuesta1
Inserte ( i
) el shebang con sed
la operación en su lugar:
sed -i '1 i #!/bin/bash' file.sh
Con copia de seguridad del archivo original con una .bak
extensión:
sed -i.bak '1 i #!/bin/bash' file.sh
Reemplácelo #!/bin/bash
con el shebang real que desee.
Ejemplo:
% cat foo.sh
echo foobar
% sed '1 i #!/bin/bash' foo.sh
#!/bin/bash
echo foobar
Respuesta2
Usando bash
y cat
(no en el lugar):
cat <(echo '#!/bin/sh') foo.sh
O in situ usando GNU awk >= 4.1:
awk -i inplace 'BEGINFILE{print "#!/bin/sh"}{print}' foo.sh