LINUX.ORG.RU

парсинг вывода, разделенного \n\n


0

0

Есть небольшая утилитка, написанная при помощи flex, которой на вход подается поток данных из последовательного порта (или файла, или стандартного ввода). Она этот поток разбирает, выдавая наружу текст разделенный \n\n:

wejkgb kwejhrgb  ejwrgb
wergjhwbergkjhwberkgjhwebg
wergjwherbgkjwhebrgkjhwergb

wkejrhgbkwjehrgbkjwehrbgkjwb
werghbwekrjgbwkjerhgbwer
ewrgkjwehbrkgjhbwegbrgjwhb

ergbwekjrgbwkejrhgbkwjehb
ewrgkjwhbrkgjbewrkjgbwe

и т.д.

Требуется расфасовать эти блоки по файлам с номерами 0,1,2,...,n. Хочется использовать решение в духе unixway, т.е. фильтрацией через имеющиеся программы. Как это сделать проще всего?

Первое что пришло в голову:

n=1
cat file | while read line; do
    echo "${line}" >> "out-${n}"
    [ "x${line}" = "x" ] && n=$(( $n + 1 ))
done

Deleted
()

Большое спасибо за оперативную поддержку!

Всё-таки намучался я этим csplit.. Мало примеров по нему. Но все равно у меня получилось.. всё гениальное просто.

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