URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6298
[ Назад ]

Исходное сообщение
"Аргументы grep как результат исполнения двух команд."

Отправлено sickboy , 26-Мрт-07 15:26 
Привет.

Примерный набор команд:

echo "12" | xargs -0 grep ГДЕ_ИСКАТЬ.

т.е. аргументы grep'а должны быть результатом исполнения каких-то команд.
Первый аргумент ШАБЛОН, передается, как результат исполнения предыдущих, с помощью xargs.
Второй аргумент, так же должен результатом исполнения какой-либо программы, например date.

И в итоге нужно получить grep 12 "Искать_в_Mon Mar 26 17:39:53 MSD 2007)


Содержание

Сообщения в этом обсуждении
"Аргументы grep как результат исполнения двух команд."
Отправлено chip , 26-Мрт-07 17:09 
>Привет.
>
>Примерный набор команд:
>
>echo "12" | xargs -0 grep ГДЕ_ИСКАТЬ.
>
>т.е. аргументы grep'а должны быть результатом исполнения каких-то команд.
>Первый аргумент ШАБЛОН, передается, как результат исполнения предыдущих, с помощью xargs.
>Второй аргумент, так же должен результатом исполнения какой-либо программы, например date.
>
>И в итоге нужно получить grep 12 "Искать_в_Mon Mar 26 17:39:53 MSD
>2007)

grep вторым аргументом *всегда* ожидает имя файла. Соотвественно указать "Искать_в_Mon" не получиться. Задачу легко решить упрощением логики.


"Аргументы grep как результат исполнения двух команд."
Отправлено sickboy , 26-Мрт-07 17:37 
> grep вторым аргументом *всегда* ожидает имя файла.

Или читает со STDIN.

> Соотвественно указать "Искать_в_Mon" не получиться.
> Задачу легко решить упрощением логики.

Как решить упрощением я не понял, просто тот результат, что передавался через xargs, сохранил во временную переменную, ну а далее:
date | grep $PATTERN


"Аргументы grep как результат исполнения двух команд."
Отправлено AMDmi3 , 27-Мрт-07 17:32 
man xargs:

-J replstr
        If this option is specified, xargs will use the data read from
        standard input to replace the first occurrence of replstr instead
        of appending that data after all other arguments.