![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Как удалить повторяющиеся записи без сортировки | svenkatareddy | Shell программирование и сценарии | 19 | 06-11-2008 03:10 PM |
| Как удалить повторяющиеся записи без сортировки | svenkatareddy | SUN Solaris | 2 | 02-28-2008 08:38 AM |
| Повторяющиеся записи из Oracle в текстовый файл. | shilendrajadon | UNIX перспективных И опытных пользователей | 1 | 01-10-2008 11:21 AM |
| Удаление повторяющихся записей из тильда файл | irshadm | Shell программирование и сценарии | 5 | 12-06-2007 05:36 AM |
| Удаление повторяющихся строк из файла | Стив Nysif | UNIX для чайников Вопросы И Ответы | 18 | 09-09-2007 09:57 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Удалить все экземпляры повторяющихся записей из файлов
Привет эксперты,
Я новичок в сценарии. У меня есть требование как ниже. File1: A | 123 | NAME1 A | 123 | NAME2 B | 123 | NAME3 File2: C | 123 | NAME4 C | 123 | NAME5 D | 123 | NAME6 1) У меня есть 2 объединить оба файла. 2) необходимо сделать рода (основные поля первом и втором местах) 3) устранить всех случаях дублирующих записей из файлов объединены писать и писать все эти дубликаты случаях в одном файле. 4) остальная часть записи, которые являются уникальными в первоначальный источник файлы, необходимо быть написаны в другой файл outfiles: file3: A | 123 | NAME1 A | 123 | NAME2 C | 123 | NAME4 C | 123 | NAME5 File4: B | 123 | NAME3 D | 123 | NAME6 Пожалуйста, помогите мне с решением, так как я в реальном срочно. Благодарим вас за помощь. Спасибо |
|
||||
|
Цитата:
Итак, если все данные являются уникальными все записи следует искать в File4 .. n't ли это? Объясните более четко, так что все вы получите быстрый ответ от этого форума. Поверьте мне, здесь, на этом форуме действительно блестящих специалистов и здесь, чтобы помочь вам в любое время .. кроме меня .. ![]() Ура user_prady |
|
|||||
|
Другая сортировать / Awk решения (если ваши файлы не сортируются в качестве образца вас в курсе): Код:
sort -t\| -k1,2 file1 file2|awk '{
x[$1,$2]++
y[NR] = $0
} END {
for (i = 1; i <= NR; i++)
print y[i] > ((x[substr(y[i],1,5)] > 1) ? "file3" : "file4")
}' SUBSEP="|" FS="|"
Использование nawk / или usr/xpg4/bin/awk на Solaris. PS Для переменной ширины столбца: вы не должны использовать substr, но разделен на примере: Код:
sort -t\| -k1,2 file1 file2|awk '{
x[$1,$2]++
y[NR] = $0
} END {
for (i = 1; i <= NR; i++)
{
tmp = y[i]
split(tmp,z)
print tmp > ((x[z[1],z[2]] > 1) ? "file3" : "file4")
}
}' SUBSEP="|" FS="|"
Последний раз редактировалось radoulov; на 12-12-2007 08:16 AM.. |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|