Переключатель от содержания файла до STDIN в переданной по каналу команде? (Linux Shell)

Если Вы предполагаете, что значения существуют для всех операций за оба года, затем просто делают внутреннее объединение следующим образом

 select act.activity, t1.amount as "Total 2009", t2.amount as "Total 2008"
from Activities as act,
    (select activityid,  SUM(Amount) as amount
    from Activities, Incomes
    where Activities.UnitName = ? AND
          Incomes.ActivityId = Activities.ActivityID
    GROUP BY Activityid) as t1,
    (select activityid, SUM(Amount) as amount
    from Activities, Incomes2008
    where Activities.UnitName = ? AND
          Incomes2008.ActivityId = Activities.ActivityID
    GROUP BY Activityid) as t2
    WHERE t1.activityid= t2.activityid
    AND act.activityId = t1.activityId
    ORDER BY act.activity

, Если Вы не можете принять это, то посмотрите на выполнение внешнего объединения

7
задан zslayton 13 October 2009 в 15:51
поделиться

3 ответа

Я бы сделал что-то вроде

(cat your_file_with_commands; cat) | sh your_script

Таким образом, когда файл with commands выполнено, второй cat будет кормить ваш скрипт тем, что вы впоследствии наберете на stdin.

15
ответ дан 6 December 2019 в 09:20
поделиться

Вы пробовали использовать что-то вроде tail -f commandfile | command Я думаю, что это должно направить строки файла в команду, не закрывая впоследствии дескриптор файла. Используйте -n , чтобы указать количество строк, которые будут переданы, если tail -f не перехватывает их все.

1
ответ дан 6 December 2019 в 09:20
поделиться

Думаю, ожидаю, что подойдет для этого.

2
ответ дан 6 December 2019 в 09:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: