Страница 1 из 1
AWK и SED, обработка файла
Добавлено: 2015-11-15 0:07:41
кветрЯ
имеется файл blablabla.txt
в нем 84600+ строк вида:
1234567890;USS RUSSELL;РАССЕЛ;USA;8;-;-;1;19;NULL;NULL;NEVV ;GOV;;NULL;M;S;DDG 59;0;NULL
нужно превратить эту стоку в вид:
update tablename set NAMEO='USS RUSSELL', NAMEOR='РАССЕЛ', CDSTR='USA' where CDEOK='1234567890' AND NAMEO<>'' AND NAMEOR<>'';
пара вопросов:
1. правильный запрос sql?
вставить в номер 1234567890 и проверить что он пустой. если не пустой - то не писать.
2. sed и awk под винду есть? а то у меня теперь нет сервера с freebsd.
AWK и SED, обработка файла
Добавлено: 2015-11-16 9:37:45
lazhu
Код: Выделить всё
awk -F ';' '{print "UPDATE tablename SET NAMEO="$2,"NAMEOR="$3,"CDSTR="$4,"WHERE CDEOK="$1,"AND (NAMEO IS NULL AND NAMEOR IS NULL);"}' filename
AWK и SED, обработка файла
Добавлено: 2015-11-16 18:45:47
Neus
Если не ошибаюсь, is null и ""(пустая строка) не равнозначны.
Покажи определение этой таблицы.
AWK и SED, обработка файла
Добавлено: 2015-11-16 20:59:46
FiL
awk под винду есть. Например, можно из cygwin'a вытащить.
А вот что там с таблицами - это надо смотреть по факту. Например, а что если записи с CDEOK='1234567890' не существует?
А если есть запись, где NAMEO заполнен, а NAMEOR нет?
AWK и SED, обработка файла
Добавлено: 2015-11-20 0:05:07
КвертЯ
Например, а что если записи с CDEOK='1234567890' не существует?
существует.
хотя есть небольшая, очень небольшая, вероятность того что записи таки нет, так как записи в базе можно только добавить, удалить невозможно. пробовали неоднократно. защита от дурака, от всего что тока можно и нельзя представить - все предусмотрено... все таки срочник может что угодно сделать... невозможно созданную запись уже удалить

хотя некоторые очень надо бы....
А если есть запись, где NAMEO заполнен, а NAMEOR нет?
однозначно - нет.
либо есть, либо нет. в обоих полях таблицы.
Покажи определение этой таблицы.
этого поля - текстовое, около 170 символов максимум.
awk под винду есть. Например, можно из cygwin'a вытащить.
ух ты.
пошел качать.
AWK и SED, обработка файла
Добавлено: 2015-11-20 0:51:11
FiL
Что-то я вдруг подумал, что условие должно быть
CDEOK='1234567890' AND NAMEO='' AND NAMEOR=''
Ну, это если я правильно понял чего делать и чего не делать.
AWK и SED, обработка файла
Добавлено: 2015-11-21 23:53:27
КвертЯ
а я разве не так написал?
AWK и SED, обработка файла
Добавлено: 2015-11-21 23:55:03
КвертЯ
аааа
увидел
<> и =