|
|
|
|
Google Site
|
|||||||
| Форумы | Регистрация | Блог | Человек Страницы | Правила форума | Ссылки | Альбомы | ЧАВО | Пользователи | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
![]() |
|
|
Резьба Инструменты | Искать в этом Thread |
Оценка:
|
Режимы дисплея |
|
|||
|
модификации файла с ключом
Привет,
Я пытаюсь обновить MASTER файл новый файл, который может содержать меньшее количество записей. Обновление необходимо использовать ключ (первые 2 поля), вот senario: Мастер: а, б; 0 A; C; 0 A; D; 0 NEW: A; C 1; результат должен быть: а, б; 0 A; C 1; A; D; 0 Вы можете порекомендовать мне способ это сделать? 10x Ю.Н. Последний раз редактировалось ynixon; на 03-25-2007 08:01 PM.. |
| Рекламные ссылки |
|
|
|
|||
|
Если у вас есть Python, вот альтернатива:
Код:
#!/usr/bin/python
new = open("new").readlines()
fi = open("file").readlines()
for li in fi:
li = li.strip().split(";")
for li2 in new:
li2 = li2.strip().split(";")
if li2[0] == li[0] and li2[1] == li[1]:
print ';'.join(li2)
else:
print ';'.join(li)
|
|
|||
|
спасибо она работает:)
эта работает быстро
![]() спасибо |
|
|||
|
Цитата:
Например: Мастер: а, б; 0 A; C; 0 A; D; 0 NEW: A; C 1; A; E 2; результат должен быть: а, б; 0 A; C 1; A; D; 0 A; E 2; |
|
|||
|
Цитата:
Код:
awk -F";" ' BEGIN {OFS=";"; while( getline < "NEW" ) arr[$1";"$2]=$3; }
{ if( arr[$1";"$2] !~ /^ *$/ ) { $3=arr[$1";"$2]; print; delete arr[$1";"$2] }
else print
}
END {
for ( key in arr ) {
if( arr[key] !~ /^ *$/ ) { print key";"arr[key] }
} } ' MASTER
|
|
|||
|
Это даже быстрее, рабочий
![]() |
| Рекламные ссылки | ||
|
|
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Файл обновления | piyush_movadiya | Shell программирование и сценарии | 8 | 06-27-2007 08:39 AM |
| Как обновить одну строку в файл с SED | brendanf | Shell программирование и сценарии | 6 | 08-30-2006 08:44 PM |
| Файл обновления даты | amne | UNIX для чайников Вопросы И Ответы | 2 | 05-31-2005 09:09 AM |
| обновить исполняемый файл | anent | Программирования высокого уровня | 3 | 10-19-2001 04:40 PM |
| Пакетного файла обновления | cfoxwell | UNIX для чайников Вопросы И Ответы | 4 | 10-04-2001 05:50 AM |