Можно ли следовать бинарному файлу с самого начала, а-ля tail -f
?
Это полезно в некоторых случаях, например, если я scp
загружаю файл на удаленный сервер, и в то же время я хочу передать его другому процессу (да, я знаю, что могу использовать ssh
+ cat
трюки).
Насколько я читал с FM, tail
написано с учетом текстовых файлов.
Есть ли простой способ сделать такие операции, используя стандартные инструменты posix?
text-processing
tail
binary
Маркус
источник
источник
tail
можно использовать только с текстовыми файлами?tail
, не всегда справляются с двоичными файлами: они могут задушить нулевые байты или пропустить случайные байты после последней новой строки во входных файлах. Современные системы справляются.Ответы:
tail
работает с двоичными данными так же, как с текстом. Если вы хотите начать в самом начале файла, вы можете использоватьtail -c +1 -f
.источник
cat bin_file | strings - -o | grep match_string
, но когда я делаюtail -c +1 -f bin_file | strings - -o | grep match_string
, я ничего не получаю после 9-го совпадения. Я также отметил, что номера строк из-o
всех на 1 меньше по сравнению с выводом cat. Если я оставлю grep выключенным, я получу все 16 совпадений (смешанных со всем остальным), поэтому я подумал, что проблема в grep, но я попробовал perl с одним вкладышем, и он остановился в том же месте ...