2010-04-22 121 views
4

所以我把这个PHP脚本的命令行输入:使用命令的输出作为下一个命令

/usr/bin/php /var/www/bims/index.php "projects/output" 

,其输出是:

file1 file2 file3 

我想做是得到这个输出和饲料的“RM”命令,但我认为我没有这样做的权利:

/usr/bin/php /var/www/bims/index.php "projects/output" | rm 

我的目标是删除任何文件命名PHP脚本输出。应该怎样才能做到这一点?

谢谢!

回答

8
/usr/bin/php /var/www/bims/index.php "projects/output" | xargs rm 
+0

工作! xargs命令是什么?谢谢! – r2b2 2010-04-22 09:27:41

+0

man xargs:“xargs - 从标准输入建立和执行命令行”。你应该阅读那个手册页;) – 2010-04-22 09:31:10

3

你可以尝试xargs

/usr/bin/php /var/www/bims/index.php "projects/output" | xargs rm 

,或只是简单地使用一个循环

/usr/bin/php /var/www/bims/index.php "projects/output" | while read -r out 
do 
    rm $out 
done 
2

简单的解决方案:

rm `/usr/bin/php /var/www/bims/index.php "projects/output"` 

什么是反引号(``) is run and the output is passed as argument to之间rm`。

+1

xargs稍微好一点:它可以通过多次运行'rm'来处理对于最大命令行长度来说太长的输出。 – 2010-04-22 09:36:00

+0

我没有说*更好*。我说*简单* :)。 – Felix 2010-04-22 09:53:17

+1

注意:如果Php脚本生成带空格的文件,可能不起作用 – ghostdog74 2010-04-22 12:58:11

0

我想这可以帮助>>

grep -n“searchstring”filename | awk'BEGIN {FS =“”}; {print $ 1}'