Sed の使用法: スクリプトの最初の行に欠落しているシェバンを追加する

Sed の使用法: スクリプトの最初の行に欠落しているシェバンを追加する

*.sh最初の行の shebang が欠落しているスクリプトがあります。 で修正できますかsed?

答え1

インプレース演算iでシェバン( ) を挿入します。sed

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

拡張子付きの元のファイルをバックアップする場合.bak:

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

#!/bin/bash実際に必要なシェバンに置き換えます。

例:

% cat foo.sh
echo foobar

% sed '1 i #!/bin/bash' foo.sh 
#!/bin/bash
echo foobar

答え2

bashand を使用するcat(インプレースではない):

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

または、GNU awk >= 4.1 を使用してインプレースで実行します。

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

関連情報