- bash скрипт для поиска, Аноним, 12:55 , 17-Апр-23 (1)
echo -e "2001 djdjjd\n2004 fdkfkfk\n2099\n" | while read y r ; do echo $y $r >> $y.txt ; done
- bash скрипт для поиска, Diablopc, 20:16 , 17-Апр-23 (2)
- bash скрипт для поиска, Tribal, 20:44 , 17-Апр-23 (3)
- bash скрипт для поиска, Diablopc, 01:10 , 18-Апр-23 (4)
> разделитель - ";" > файл с расширением .csv Ну таки либо читай маны, либо, если все-же хочешь чтобы все за тебя сделали - дай хоть пару строк из файла в качестве примера
- bash скрипт для поиска, Tribal, 09:19 , 18-Апр-23 (5)
>> разделитель - ";" >> файл с расширением .csv > Ну таки либо читай маны, либо, если все-же хочешь чтобы > все за тебя сделали - дай хоть пару строк из файла > в качестве примера "Приволжский;Кировская область;-;-;А;01.01.1988;01.01.1988;1987;-;271306;0152192;-;11;2;-;-;-;-;71;-;-"
- bash скрипт для поиска, Diablopc, 11:30 , 18-Апр-23 (6)
>>> разделитель - ";" >>> файл с расширением .csv >> Ну таки либо читай маны, либо, если все-же хочешь чтобы >> все за тебя сделали - дай хоть пару строк из файла >> в качестве примера > "Приволжский;Кировская область;-;-;А;01.01.1988;01.01.1988;1987;-;271306;0152192;-;11;2;-;-;-;-;71;-;-" #!/bin/bash for y in $(seq $1 $2) do grep -e "\;$y\;" $3 > $y.txt done
Использование:
#~ ./scriptname 0000 1111 input.csv Где 0000 начало диапазона годов, 1111 конец диапазона годов, input.csv имя файла для сортировки Основной минус: на каждый год оно будет перечитывать файл заново.
- bash скрипт для поиска, Аноним, 12:09 , 18-Апр-23 (8)
>[оверквотинг удален] > do > grep -e "\;$y\;" $3 > > $y.txt > done > > Использование: > #~ ./scriptname 0000 1111 input.csv > Где 0000 начало диапазона годов, 1111 конец диапазона годов, input.csv имя > файла для сортировки > Основной минус: на каждый год оно будет перечитывать файл заново.Зачем ты взял первый ответ в треде и испортил его - сделал так, чтобы файл каждый раз перезаписывался содержимым единственной строчки? Не умеешь - хотя бы не учи.
- bash скрипт для поиска, Аноним, 11:58 , 18-Апр-23 (7)
- bash скрипт для поиска, Pahanivo, 18:59 , 19-Апр-23 (9)
Или про perl и его regex почитать, там кода на три пять строк. Думаю тут вообще вся задача закроется примерами из манов на 99%))
- bash скрипт для поиска, Аноним, 12:44 , 21-Апр-23 (12)
> Или про perl и его regex почитать, там кода на три пять > строк. > Думаю тут вообще вся задача закроется примерами из манов на 99%)) Перлом будет слишком много гемора открывать-закрывать разные файлы, на шелле вывод перенаправлять гораздо проще. Регулярки можно и в шелле применить. grep -oP например. Тут вся задача высосана из пальца, в том смысле, что если нужны данные за какой-то год, ты просто грепаешь данные и смотришь вывод. Плодить файлики ради этого не продуктивно.
- bash скрипт для поиска, ыы, 09:10 , 20-Апр-23 (10)
> Доброго времени суток, уважаемые! я тут новенький да и в программировании не > спец. > Есть задача: > В текстовом фале есть некая база, в которой данные отсортированы по годам. > требуется разбить этот фал на отдельные - содержащие только один год > Я так понимаю нужно сделать скрипт, который бы искал первое совпадение по > году, запоминал номер строки, далее искал первое совпадение со следующим годом, > потом копировал текст между этими двумя строками в новый файл и > так далее по нарастающей до конца. > Помогите реализовать это в коде...Возможно Вы думаете неправильно. Если маркер года находится в каждой строке - то нет необходимости запоминать первое вхождение и искать строку с новым. достаточно просто парсить файл построчно, и копировать каждую строку в файл с именем которое мы определим как год, извлеченный из той же строки. вывод в файл делает ся в режиме добавления. этот режим работает так- если файла нет- он создается. все последующие строки в него добаляются. тоесть чтото вроде получить строку в переменную получить новую переменную "как мы определили год" из строки вывести строку в файл в режиме добавления, имя которого собрано из переменной с годом Решение которое описали Вы - так же возможно, но в данном случае оно ненужно.
- bash скрипт для поиска, ыы, 09:20 , 20-Апр-23 (11)
разделитель точка с запятой, год похоже в 8 позиции соответственно нужно поулчить это значение и использовать его как основу для имени файла
- bash скрипт для поиска, Tribal, 15:40 , 21-Апр-23 (13)
Спасибо всем за ответы, но как я говорил я далек от программирования. Дело решилось ручным методом, нашел строки с первым упоминанием года и скопировал диапазон в новые файлы
|