Перенаправить вывод в файл из командной строки grep

Я запускаю это:

cat /dev/urandom|hexdump| grep -i "ffff f" > random

и я ничего не получаю в файле random, он остается нулевой длины после прерывания команды.

Как заставить его записывать вывод в файл?

Мне нужно записать результат в файл, который должен содержать выходные данные, например:

021bc40 7724 d4f5 59ec bcbb ffff fd26 ab3c 9b7c

03a9100 b3a5 8601 fa33 ffff f23c 4326 2e7f 0c8a

0449810 e459 d5af 4e11 ffff fc55 8660 9efb 3c9b

enter image description here

9
задан 26 June 2014 в 11:48

4 ответа

Используйте --line-buffered опция для grep (и также избавьтесь от бесполезного cat):

hexdump /dev/urandom | grep --line-buffered -i "ffff f" > random

Этот способ, которым вывод не буферизуется, но каждая строка, помещается в random сразу. Я также рекомендовал бы использовать tee в Вашем канале для наблюдения, сколько линий было продолжено:

hexdump /dev/urandom | grep --line-buffered -i "ffff f" | tee random
13
ответ дан 26 June 2014 в 11:48

Ваш файл пуст, потому что процесс прерван, прежде чем файл записан в диск. Именно так перенаправление работает. Как обходное решение, попробуйте это:

script -c 'cat /dev/urandom|hexdump|grep -i "ffff f"' -f random

Это в основном запишет весь экранный вывод в файл.

3
ответ дан 26 June 2014 в 11:48

cat /dev/urandom|hexdump или hexdump /dev/urandom записи непрерывно к stdout и если Вы нажимаете Ctrl + C ничто, будут выполняться после этого. Но можно ограничить вывод с head

hexdump /dev/urandom | head -n1000000 | grep "ffff f" > random  

, это будет grep в первых 1 000 000 строк вывода и пишет результат в файл.

3
ответ дан 26 June 2014 в 11:48

Необходимо будет записать вывод cat /dev/urandom | hexdump в файл перед выполнением его в следующий раз. Сценарий ниже должен выполнить то, что Вы пробуете:

cat /dev/urandom | hexdump |
  while IFS= read -r line; do
    printf '%s\n' "$line" >> random;
  done

IFS используется для разделения вывода на строки здесь.

<час>

(Источник)

1
ответ дан 26 June 2014 в 11:48

Другие вопросы по тегам:

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