Как передать каждый вывод команды grep другой команде? - PullRequest
0 голосов
/ 07 июня 2018

У меня есть команда, которая возвращает список таблиц в базе данных:

drush sqlq "show tables"|grep deleted

Возвращает список таблиц, которые необходимо удалить:

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 каждая строкавыход.

Я видел вопрос , но до сих пор неясно, как вы можете получить доступ к каждой строке результата в переданной команде.

1 Ответ

0 голосов
/ 07 июня 2018

xargs имеет -I<STRING>, который будет заменен перед выполнением команды, в вашем случае, например, будет:

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