我使用的是数据集和shell脚本找到的here。当我使用以下命令运行shell脚本时:
sh split_ratings.sh
终端读取:
ratings count:
expr: syntax error
set size:
expr: syntax error
remainder:
tail: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
tail: -: No such file or directory
tail: -: No such file or directory
r1.test created. lines.
r1.train created. lines.
tail: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
tail: -: No such file or directory
tail: -: No such file or directory
r2.test created. lines.
r2.train created. lines.
tail: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
tail: -: No such file or directory
tail: -: No such file or directory
r3.test created. lines.
r3.train created. lines.
expr: syntax error
tail: -: No such file or directory
head: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
tail: -: No such file or directory
tail: -: No such file or directory
r4.test created. lines.
r4.train created. lines.
tail: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
tail: -: No such file or directory
tail: -: No such file or directory
r5.test created. lines.
r5.train created. lines.
ra.test created. lines.
ra.train created. lines.
rb.test created. lines.
rb.train created. lines.所有文件都显示在该文件夹中;但是,大多数文件都是空的。r5.test是唯一包含数据的.test文件,它包含以下数据:
==> ratings.dat <==
71567::1984::1::912580553
71567::1985::1::912580553
71567::1986::1::912580553
71567::2012::3::912580722
71567::2028::5::912580344
71567::2107::1::912580553
71567::2126::2::912649143
71567::2294::5::912577968
71567::2338::2::912578016
71567::2384::2::912578173这显然不是10,000,000的20%!
唯一正确的文件是ra.train,ra.test,rb.trainandrb.test` -这些文件实际上是我唯一不需要的文件!
我没有使用Shell的经验,因此不知道为什么会发生这种情况。我使用的是Mac,所有的文件都已下载--我没有改变任何文件结构。
发布于 2015-04-26 19:37:49
我也有同样的问题。事实上,我在Xubuntu上试过,它工作得很完美。因此,我打开了split_ratings.sh,并试图找出脚本的错误所在。令人惊讶的是,问题出在第一行。如果在您的终端上运行
$ wc -l ratings.dat | cut -d ' ' -f 1它不返回任何东西。第一个命令(在管道的左侧)计算文件包含的评级数。第二个方法是从字符串中提取数字。如果你运行
$ wc -l ratings.dat | cut -d ' ' -f 2您将看到它正确地返回了数字。
所以如果你改变这个
RATINGS_COUNT=`wc -l ratings.dat | cut -d ' ' -f 1`到这个
RATINGS_COUNT=`wc -l ratings.dat | cut -d ' ' -f 2`脚本现在将知道有多少个评分。此外,如果您在第23、24、28、29、32和33行应用相同的更改,脚本将输出每个生成的文件的行数(评级)。
我希望它能帮上忙。
https://stackoverflow.com/questions/29603820
复制相似问题