- echo -e 2001 djdjjd n2004 fdkfkfk n2099 n 124 while read y r do echo y , Аноним (1), 12:55 , 17-Апр-23 (1)
echo -e "2001 djdjjd\n2004 fdkfkfk\n2099\n" | while read y r ; do echo $y $r >> $y.txt ; done
- Если строка начинается с года code grep -e 2000 filename txt code Если год о, Diablopc (?), 20:16 , 17-Апр-23 (2)
- Возможно Вы думаете неправильно Если маркер года находится в каждой строке - то, ыы (?), 09:10 , 20-Апр-23 (10)
> Доброго времени суток, уважаемые! я тут новенький да и в программировании не > спец. > Есть задача: > В текстовом фале есть некая база, в которой данные отсортированы по годам. > требуется разбить этот фал на отдельные - содержащие только один год > Я так понимаю нужно сделать скрипт, который бы искал первое совпадение по > году, запоминал номер строки, далее искал первое совпадение со следующим годом, > потом копировал текст между этими двумя строками в новый файл и > так далее по нарастающей до конца. > Помогите реализовать это в коде...Возможно Вы думаете неправильно. Если маркер года находится в каждой строке - то нет необходимости запоминать первое вхождение и искать строку с новым. достаточно просто парсить файл построчно, и копировать каждую строку в файл с именем которое мы определим как год, извлеченный из той же строки. вывод в файл делает ся в режиме добавления. этот режим работает так- если файла нет- он создается. все последующие строки в него добаляются. тоесть чтото вроде получить строку в переменную получить новую переменную "как мы определили год" из строки вывести строку в файл в режиме добавления, имя которого собрано из переменной с годом Решение которое описали Вы - так же возможно, но в данном случае оно ненужно.
- Спасибо всем за ответы, но как я говорил я далек от программирования Дело решило, Tribal (ok), 15:40 , 21-Апр-23 (13)
Спасибо всем за ответы, но как я говорил я далек от программирования. Дело решилось ручным методом, нашел строки с первым упоминанием года и скопировал диапазон в новые файлы
|