Страница 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
КвертЯ
аааа
увидел

<> и =