Overview
今天在Mac上运行一个在Windows中处理过的R脚本,不能正常运行,错误信息指向明确。
问题描述
使用./H_gr500_tune.R运行,报下面的错误:
env: Rscript\r: No such file or directory
打开这个脚本,头几行内容如下:
#!/usr/bin/env Rscript
library(e1071)
library(plyr)
library(ROCR)
并没有发现异常,很明显是因为Windows下换行符\r\n引起的,但是使用sublime查找这个脚本,能查找\n,却查不到有\r,所以没办法在sublime中手动去掉\r。
可能sublime在显示的时候自动把\r\n处理成了\n,但脚本中\r确实是存在的,所以尽管看不到,但运行脚本时会报错。
解决方案
使用下面的命令行,去掉\r,并生成一个新文件H_gr500_tune1.R:
cat H_gr500_tune.R | tr -d "\r" > H_gr500_tune1.R
重新运行H_gr500_tune1.R,一切正常。
小结
从Windows下拿过来的脚本,最好都check一下换行符的问题,不管会不会有问题,看一下总没错...