Как добавить # Shebang в первую строку файла, который является сценарием автоматического создания другой программой
Я ищу способ добавить shebang #!/ Bin/csh -f в первую строку моего файла, который фактически создается другим набором программ, так как этот сценарий создается автоматически, он должен запускаться из bash, когда пользователь нажимает какую-то кнопку в моем инструменте. Я пытался использовать sed, но это не сработало.
sed ' 1 s/.*/\#!/bin/csh -f/' filename.
и awk
awk 'NR==1{printf "%s %s\n", $0, "#!/bin/csh -f"}' filename
обе эти команды возвращают следующее
/bin/csh is not an event.
Пожалуйста, предложите лучший метод.
Дэн
2 ответа
Awk альтернативы
awk 'BEGIN{print "#!/bin/csh -f"} {print}' filename > out.sh
awk 'NR==1{print "#!/bin/csh -f"};{print}' filename > out.sh
Вариант Xen2050 для изменения файла внутри вместо перенаправления его в out.sh
sed -i '1 i\#\!\/bin\/csh -f' filename
Попробуйте убежать от !
характер, используя \!
вместо простого !
, должен дать лучшие результаты. Так что постарайтесь:
sed '1 i\#\!\/bin\/csh -f' filename > out.txt