AWK
$ awk 'NR==1{$0="#!/usr/local/bin/ruby\n"$0 }1' file > temp; mv temp file;
сед
sed -i.bak '1 i #!/usr/local/bin/ruby' file
чтобы сделать это рекурсивно, вы можете использовать find
find /path -type f -iname "*.rb" | while read -r FILE
do
sed -i.bak '1 i #!/usr/local/bin/ruby' $FILE
# awk 'NR==1{$0="#!/usr/local/bin/ruby\n"$0 }1' >temp ; mv temp $FILe
done