2011-05-12 83 views
0

我有一个perl soap服务,我正在使用它将不同的用户数据放在一起。该服务工作正常,但我想运行“sort -u file1 file2> file1”来合并收集的数据与已经在服务器上的数据。我希望Perl脚本在完成它的任务后调用系统函数允许Apache运行的Perl脚本使用系统()

这是设置Apache或其他的正确权限的问题吗?

目录列表:

无功/网络/ script.pl
无功/网络/文件1
无功/网络/文件1
VAR/WWW/index.php文件

任何帮助将是巨大的。谢谢

+0

@Prix文件格式为.csv格式。我不反对使用别的东西,只是这样 - 我做得很好。 – jeremyforan 2011-05-12 01:43:02

+0

@Prix我真正感兴趣的功能是排序-u,将两个文件合并为一个并省略重复项。思考? – jeremyforan 2011-05-12 01:51:30

回答

1
sort -u file1 file2 > file1 

是不会做你说你想要做的。你有没有尝试过从命令行?

后运行该命令,文件1将不包含任何在文件1,首先,因为重定向将痛殴文件1排序前到达采取行动。

sort -u file1 file2 >file3; mv file3 file1 

您似乎想要使用system(),当您尝试它时发生了什么?你有没有收到任何错误讯息?

+1

另一种方法是使用'-o'参数:“sort -o file1 file1 file2”。这将输出到file1,但仅在对file1和file2进行排序后才会输出。这是一个相对未知的伎俩。 – 2011-05-12 03:25:39

+0

问题不在于命令。该命令没有被执行,所以这不是问题 – jeremyforan 2011-05-13 02:08:44

0

不,这是为包含要写入的文件的目录设置正确权限的问题。

找出在其下的用户ID /组ID的Web服务器进程正在运行(例如,通过寻找与/bin/ps -AH -o user,group,cmd进程表),然后参考Controlling Access to Files in The Linux Cookbook

+0

感谢@daxim这就是我一直在寻找 – jeremyforan 2011-05-13 02:07:54