删除由管道提供的文件

Rol*_*oós 6 shell find xargs text-processing

我有这个命令链:

find . -print | grep php | xargs grep 'eval' -sl | xargs wc -l | grep ' [1-2][0-9] '
Run Code Online (Sandbox Code Playgroud)

这为我提供了这个输出:

 14 ./includes/js/calendar/lang/vgju.php
 18 ./includes/phpInputFilter/default.php
 14 ./includes/Archive/eula.php
 18 ./media/system/js/json.php
Run Code Online (Sandbox Code Playgroud)

这些文件是受感染的 php 文件,我想用我的链将其删除。我该怎么做?

小智 10

尽管您可能只能使用 find 命令完成这一切,但您可以尝试附加|xargs rm -f到该命令。

这就是它的样子

find . -print | grep php | xargs grep 'eval' -sl | \
    xargs wc -l | grep ' [1-2][0-9] ' | \
    cut -f 2 -d ' ' | xargs rm -f
Run Code Online (Sandbox Code Playgroud)

请注意,该xargs rm命令在这里有效,因为您知道文件名中没有任何特殊字符。如果文件名中可能有空格,您可以使用xargs -d '\n' rm -f(仅限 Linux)。