短暂的任务,为什么这一行
sed -i '1s/^/#!\/usr\/bin\/env node\n/' tsunit.js;\
给我这个错误
sed: 1: "tsunit.js": undefined label 'sunit.js'
如果相关,请在Makefile中。
我在Mac上。
答案 0 :(得分:5)
根据the Apple man page for sed
,-i
选项采用必需参数指定备份文件的文件扩展名。因此,假设您使用的是Mac或类似产品,sed
认为您希望'1s/^/#!\/usr\/bin\/env node\n/'
成为备份的文件扩展名。然后它将tsunit.js
解释为sed
命令。前导t
告诉sed转移到标签sunit.js
,当然,标签不存在。因此错误信息。
解决方案是:
sed -i '.bak' '1s/^/#!\/usr\/bin\/env node\n/' tsunit.js
或者,如果你真的不想要备份:
sed -i '' '1s/^/#!\/usr\/bin\/env node\n/' tsunit.js
答案 1 :(得分:1)
此外,它看起来像是在插入一条线。 sed的命令多于s
sed -i "" '1i\
#!/usr/bin/env node' tsunit.js