如何将 grep 的每个输出通过管道传递给另一个命令?

How to pipe the each output of grep to another command?

我有一个命令 returns 数据库中的表列表:

drush sqlq "show tables"|grep deleted

这个returns需要删除的表格列表:

field_deleted_data_811d267471
field_deleted_data_e52abfde52
field_deleted_data_eefd3bb8fd

我正在尝试将每个结果行输入到命令中

drush sqlq "drop table TABLENAME"

我正在尝试构建类似 drush sqlq "show tables"|grep deleted |xargs -n1 drush sqlq "drop table ${TABLE_NAME}" 其中 TABLE_NAME 每行输出。

I saw the question 但仍然不清楚如何访问管道命令中的每个结果行。

xargs-I<STRING> 将在 运行 命令之前被替换,在您的情况下将是例如:

drush sqlq "show tables"|grep deleted |xargs -I@ -n1 drush sqlq "drop table @"