Shell 如何将grep的每个输出通过管道传输到另一个命令?
我有一个命令,返回数据库中的表列表:Shell 如何将grep的每个输出通过管道传输到另一个命令?,shell,grep,xargs,Shell,Grep,Xargs,我有一个命令,返回数据库中的表列表: drush sqlq“显示表格”| grep已删除 这将返回需要删除的表的列表: field_deleted_data_811d267471 field_deleted_data_e52abfde52 field_deleted_data_eefd3bb8fd 我正在尝试将每个结果行和管道输入到命令中 drushsqlq“drop table TABLENAME” 我正试着建造一些像 drush sqlq“show tables”| grep delete
drush sqlq“显示表格”| grep已删除
这将返回需要删除的表的列表:
field_deleted_data_811d267471
field_deleted_data_e52abfde52
field_deleted_data_eefd3bb8fd
我正在尝试将每个结果行和管道输入到命令中
drushsqlq“drop table TABLENAME”
我正试着建造一些像
drush sqlq“show tables”| grep deleted | xargs-n1 drush sqlq“drop table${table_NAME}”
其中table_NAME
输出的每一行
但是仍然不清楚如何访问管道命令中的每个结果行
xargs
具有-I
,在运行命令之前将被替换,例如:
drush sqlq "show tables"|grep deleted |xargs -I@ -n1 drush sqlq "drop table @"