- удаление строк в файле, Sergey, 20:34 , 12-Янв-07 (1)
открываешь доку по башу, заганяешь 1 строку 2го файла в массив, прогоняешь 1 файл, берешь 2ую строку... и т.д. или заганяешь 2ой файл в массивы, и пропускаешь 1 файл через массивы... как получеться оптимальнее, решай сам... в разных ситуациях по разному... в одних нужна скорость, в других можно пренебречь, но поберечь ресурсы
- удаление строк в файле, ncp, 20:49 , 12-Янв-07 (2)
>открываешь доку по башу, заганяешь 1 строку 2го файла в массив, прогоняешь >1 файл, берешь 2ую строку... и т.д. >или заганяешь 2ой файл в массивы, и пропускаешь 1 файл через массивы... >как получеться оптимальнее, решай сам... в разных ситуациях по разному... в >одних нужна скорость, в других можно пренебречь, но поберечь ресурсы Я не знаю, что такое массив. Если можно напишите проще. Еще вся ботва в том, что нужен скрипт, с помощью которого я могу делать эту операцию периодически. Это возможно?
- удаление строк в файле, redmoon, 22:03 , 12-Янв-07 (3)
>открываешь доку по башу, заганяешь 1 строку 2го файла в массив, прогоняешь >1 файл, берешь 2ую строку... и т.д. >или заганяешь 2ой файл в массивы, и пропускаешь 1 файл через массивы... >как получеться оптимальнее, решай сам... в разных ситуациях по разному... в >одних нужна скорость, в других можно пренебречь, но поберечь ресурсы мужики,всем дарофф,не мучайте парня, пусть читает man grep, ,man awk
- удаление строк в файле, newser, 00:30 , 13-Янв-07 (4)
>>открываешь доку по башу, заганяешь 1 строку 2го файла в массив, прогоняешь >>1 файл, берешь 2ую строку... и т.д. >>или заганяешь 2ой файл в массивы, и пропускаешь 1 файл через массивы... >>как получеться оптимальнее, решай сам... в разных ситуациях по разному... в >>одних нужна скорость, в других можно пренебречь, но поберечь ресурсы > > >мужики,всем дарофф,не мучайте парня, пусть читает man grep, ,man awk Кстати, если файлы можно сортировать, то еще проще: man sort и man comm.
- удаление строк в файле, Sergey, 00:54 , 13-Янв-07 (5)
на баше можно загнать в массив, что бы баш делал автоотределения масива, тоже что и авк, но приетом значительно меньше памяти расходуеться и скорость выше... я в свое время етот вопрос обсасывал и пришел к такому выводу, что лучше на баше строить.man bash
- удаление строк в файле, newser, 01:25 , 13-Янв-07 (6)
>на баше можно загнать в массив, что бы баш делал автоотределения масива, >тоже что и авк, но приетом значительно меньше памяти расходуеться и >скорость выше... я в свое время етот вопрос обсасывал и пришел >к такому выводу, что лучше на баше строить. > >man bash Ну нет у меня баша, хоть убейте! И не пользуюсь я им! И ставить ради подобных сомнительных преймуществ не стал бы, т.к. в данном случае задача единоразовая, и память для изложенных условий не критичный фактор. Уж лучше использовать более портабельный вариант (sed, awk, comm). Да и perl еще забыли упомянуть. P.S. Кстати, что так уперлись в массивы? Я уже изложил подход, который ВООБЩЕ не требует массивов, так что про "расход памяти" лучше помолчать. :)
- удаление строк в файле, ncp, 11:24 , 13-Янв-07 (7)
Ладно. Спасибо всем. Буду читать маны. Только через них лежит путь к пониманию :) Благо что часть их на русском.
- удаление строк в файле, Duck, 14:24 , 13-Янв-07 (8)
Странно, как это нет баша? Такого не встречал. На мой взгляд равноценно задача решается как на баше так и на перрл, написать готовое решение не сложно, но принципиально то, что чел юзающий *никс должен такие задачи решать сам, это задачка для первокласника.
- удаление строк в файле, newser, 15:30 , 13-Янв-07 (9)
>Странно, как это нет баша? Такого не встречал. Так а Вы, видать, кроме Linux никаких *nix систем и не знаете. :) Например, в *BSD нет bash, ставится из портов, если он нужен. К тому же, bash - это ДАЛЕКО не единственная оболочка, так что...
- удаление строк в файле, Duck, 22:41 , 13-Янв-07 (11)
>Так а Вы, видать, кроме Linux никаких *nix систем и не знаете. >:) да, да совершенно незнаю :) читая заголовок делаешь вывод, что чел юзает линукс>Например, в *BSD нет bash, ставится из портов, если он нужен. >К тому же, bash - это ДАЛЕКО не единственная оболочка, так что... > видимо у Вас какой-то специальный, заказной дистр BSD, что на нём есть всё что нужно. Почему-то мне пришлось 80% FreeBSD ставить из портов.
- удаление строк в файле, newser, 01:51 , 14-Янв-07 (15)
>>Например, в *BSD нет bash, ставится из портов, если он нужен. >>К тому же, bash - это ДАЛЕКО не единственная оболочка, так что... >> >видимо у Вас какой-то специальный, заказной дистр BSD, что на нём есть >всё что нужно. >Почему-то мне пришлось 80% FreeBSD ставить из портов. Разговор шел о bash. В базовой установке FreeBSD его нет, есть в портах, но лично я им не пользуюсь, а потому не ставлю. :)
- удаление строк в файле, ncp, 17:20 , 13-Янв-07 (10)
>Друзья! Помогите сделать такую вещь: >Есть файл 1.txt и есть файл 2.txt >Нужно удалить строки из файла 1.txt которые идентичны строкам из 2.txt >Другими словами нужно "вырезать" содержимое файла 2.txt из файла 1.txt >Файл 1.txt имеет около 1500 строк. Файл 2.txt имеет около 300 строк. > Мужики! Я разобрался! На самом деле не нужны никакие массивы в этом случае. Вся операция выполняется с помощью команды comm.
- удаление строк в файле, Duck, 22:45 , 13-Янв-07 (12)
>>Друзья! Помогите сделать такую вещь: >>Есть файл 1.txt и есть файл 2.txt >>Нужно удалить строки из файла 1.txt которые идентичны строкам из 2.txt >>Другими словами нужно "вырезать" содержимое файла 2.txt из файла 1.txt >>Файл 1.txt имеет около 1500 строк. Файл 2.txt имеет около 300 строк. >> > > >Мужики! Я разобрался! На самом деле не нужны никакие массивы в этом >случае. Вся операция выполняется с помощью команды comm. а как удалять строки из файла 1.txt ? видимо одной комманды comm маловато.
- удаление строк в файле, Sergey, 00:00 , 14-Янв-07 (13)
теоретически,можно , сделать выборку... и удалить файл (исходный) заменив полученым... - удаление строк в файле, ncp, 00:46 , 14-Янв-07 (14)
>>>Друзья! Помогите сделать такую вещь: >>>Есть файл 1.txt и есть файл 2.txt >>>Нужно удалить строки из файла 1.txt которые идентичны строкам из 2.txt >>>Другими словами нужно "вырезать" содержимое файла 2.txt из файла 1.txt >>>Файл 1.txt имеет около 1500 строк. Файл 2.txt имеет около 300 строк. >>> >> >> >>Мужики! Я разобрался! На самом деле не нужны никакие массивы в этом >>случае. Вся операция выполняется с помощью команды comm. > >а как удалять строки из файла 1.txt ? видимо одной комманды comm >маловато. При запуске без ключей команда comm выдает результат в три столбца. Первый столбец содержит строки, уникальные для ФАЙЛА1, второй -- уникальные для ФАЙЛА2, а третий -- общие для обоих файлов строки.
Есть следующие ключи: -1 не показывать строки, уникальные для ФАЙЛА1 -2 не показывать строки, уникальные для ФАЙЛА2 -3 не показывать строки, встреченные в обоих файлах Ставим ключи -2 и -3. На вывод получаем только строки уникальные для файла 1.txt Добавляем вывод в файл 3.txt и получаем в файле 3.txt отфильтрованный файл. В общем команда выглядит так comm -2 -3 1.txt 2.txt > 3.txt И ВСЕ!
|