LINUX.ORG.RU

ntfsclone | grep

 , ,


0

1

Хочу убрать лишний мусор и сделать свою морду... Баш еще не освоил и вот не могу допнуть как перехватить вывод:

gunzip -c ntfs.img | ntfsclone --restore-image --overwrite ./ntfs - | stdbuf -oL grep -E ".*" | cat
Проблема - через этот фильтр не проходит сами проценты... Куда они их пишет?

gunzip -c ntfs.img | ntfsclone --restore-image --overwrite ./ntfs - 2>&1| stdbuf -oL grep -E ".*" | cat

Не помогает... А вот как перехватить вывод при создании резервной копии ума не преложу...

ntfsclone --save-image -o - ntfs >(grep -E ".*" | cat) | gzip -c > $1
★★★★

Последнее исправление: LinuxDebian (всего исправлений: 1)

Ты начал с описания своих фантазий по решению некоей задачи.
Но надо было начать с описания задачи.
Быстренько всё исправь

zolden ★★★★★
()
Ответ на: комментарий от zolden

Ты начал с описания своих фантазий

Да нет, я написал как есть, я учу баш и за одно хочу прикрутить своему бекаперу псевдо-графический прогрессбар, так сказать обкатать теорию на практике с пользой, вместо этой мерцающей строки. Для этого мне нужно перехватить и проанализировать вывод этой утилиты...

Но столкнулся с двумя проблемами:

1. Не могу отловить динамически изменющеюся строку.

2. Не могу понять как в средину конвейера, всунуть анализатор не поломав передачу в зип, полагаю () в отдельный поток.

Уже склонен к идее сделать это по человечески - на плюсах.

LinuxDebian ★★★★
() автор топика
Последнее исправление: LinuxDebian (всего исправлений: 2)
Ответ на: комментарий от zolden

Сейчас через фильтры должно же проходить все? Регулярные тоже только начал читать - ненужны они мне были никогда... А потом понял что это может быть удобно...

Последний пример конечно абсолютно не рабочий, это просто псевдокод моей идеи

LinuxDebian ★★★★
() автор топика
Последнее исправление: LinuxDebian (всего исправлений: 1)
Ответ на: комментарий от zolden

Ну скачал, там коды на С. Я С знаю, я на баше хочу такое, поиск по файлам показал полное отсутствие слов grep, bash... Это вопрос о баш-скрипте и можно ли в данном случае такое сделать... На С я сам без чих-то исходников могу это сделаю...

Вообще еще проще поправить в исходниках ntfsclone вывод но я не этого хочу...

LinuxDebian ★★★★
() автор топика
Последнее исправление: LinuxDebian (всего исправлений: 2)

gunzip -c ntfs.img | ntfsclone --restore-image --overwrite ./ntfs - | stdbuf -oL grep -E ".*" | cat

говнокод.

не проходит сами проценты... Куда они их пишет?

в /dev/stderr очевидно. Перед написанием кода изучи пожалуйста ЯП.

emulek
()
Ответ на: комментарий от emulek

Перед написанием кода изучи пожалуйста ЯП.

Я этим и занимаюсь, а вторая строка моего первого поста как бы намекает что я пробовал перенаправлять stderr в stdout.

говнокод.

без аргументов это просто трёп.

LinuxDebian ★★★★
() автор топика
Ответ на: комментарий от emulek

Где именно? Между gunzip и ntfsclone? Или ntfsclone и grep? Ну так покажите пример лучше, я еще не въехал в баш, на столько чтобы писать мегаоптимально...

LinuxDebian ★★★★
() автор топика
Ответ на: комментарий от emulek

stdbuf -oL grep -E ".*" | cat

Это вообще заглушка, там планировалось выдрать строку и передать ее на перерисовку... А так смотрел выдирается или нет...

LinuxDebian ★★★★
() автор топика
Ответ на: комментарий от LinuxDebian

ну бесплатно могу намекнуть: тебе нужен тройник, tee

tee - read from standard input and write to standard output and files

И ещё один совет: не нужно юзать конвейеры там, где это не нужно.

А конструкция >(grep -E ".*" | cat) | gzip -c, это вообще верх идиотизма.

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.