2013-05-28 2 views
0

Я хочу запустить программу, которая записывает некоторые выходы в файл. Теперь в этом файле, я буду grep для определенных строк и записать их в другой файл. Я не хочу сериализовать процесс. Вместо этого я хочу передать команды. Однако эта команда не работаетonline grep при генерации вывода

./run_prog | grep READ > read_data.txt 
+0

Что вы подразумеваете под «этой командой не работает»? Если '' run_prog'' является исполняемым и записывается на стандартный вывод, вы должны получить все строки, содержащие '' READ'' в '' read_data.txt''. – mzedeler

ответ

1

Как уже упоминалось, звучит так, как будто ваша программа может записываться в STDERR вместо STDOUT. Чтобы убедиться в этом, воспользуйтесь этим:

./run_prog 2>&1 | grep READ > read_data.txt 
+0

Да, это был stderr – mahmood

1

Убедитесь, что ваш ./run_prog дает свой вывод в STDOUT. Следующий пример показывает, что он должен работать.

$>echo "READ" | grep READ > read_data.txt 
$>cat read_data.txt 
READ 
$> 

Поскольку теперь вы уверены, что должны работать отладки, просто выдав ./run_prog затем добавить | grep.

+0

ах да. Я перенаправил вывод на stderr !! – mahmood

+0

Очень хорошо. К счастью, я мог бы помочь. – hol

Смежные вопросы