我正在使用找到here的数据集和shell脚本。当我用:
运行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.train and
rb.test` - 这实际上是我不需要的唯一文件!
我没有使用Shell的经验,因此不知道为什么会发生这种情况。我正在使用Mac OS X并且所有文件都已下载 - 我没有更改任何文件结构。
答案 0 :(得分:0)
我遇到了同样的问题。事实上,我尝试使用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行中应用相同的更改,脚本将输出每个生成文件的行数(评级)。
我希望它有所帮助。