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一下换行符的问题,不管会不会有问题,看一下总没错...