如何将 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 @"
我有一个命令 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 @"