Невозможно произвести желаемые результаты с помощью соединения.Как улучшить команду объединения GNUwin32?
Запуск GNUwin32 в Windows 7 64 бит. Я запускаю версию присоединения версии 5.3.0.1936 и версию gawk 3.1.6.2962.
Следующие две таблицы ввода:
Table_1
UID_C CID
C000002 31799
C000002 31800
C000386 14950
C000386 9807916
C000386 10255083
C008114 5318432
C008117 799
C008117 444150
C008117 46878464
Table_2
UID_C CID name
C000002 31799 bevonium
C000002 31800 bevonium
C002284 24832095 hypromellose
C008117 799 indoleglycerol phosphate
C008117 444150 indoleglycerol phosphate
C008117 46878464 indoleglycerol phosphate
Am, используя следующую команду в файле летучей мыши:
C:\gnuwin32\bin\join -t"|" -1 1 -2 1 -a1 -a2 -e "NULL" -o "0,1.2,2.2,2.3" C:\directory\Table_1.txt C:\directory\Table_2.txt > C:\directory\Table_3.txt
В моей иллюстрация в stackoverflow таблицы Таблицы форматируются с помощью вкладок для упрощения чтения, но на практике я использую pipe в качестве разделителя ввода и вывода.
В следующей таблице выводится:
Table_3
UID_C CID CID name
C000002 31800 31799 bevonium
C000002 31800 31800 bevonium
C000002 31799 31799 bevonium
C000002 31799 31800 bevonium
C000386 10255083 NULL NULL
C000386 9807916 NULL NULL
C000386 14950 NULL NULL
C002284 NULL 24832095 hypromellose
C008114 5318432 NULL NULL
C008117 46878464 799 indoleglycerol phosphate
C008117 46878464 444150 indoleglycerol phosphate
C008117 46878464 46878464 indoleglycerol phosphate
C008117 444150 799 indoleglycerol phosphate
C008117 444150 444150 indoleglycerol phosphate
C008117 444150 46878464 indoleglycerol phosphate
C008117 799 799 indoleglycerol phosphate
C008117 799 444150 indoleglycerol phosphate
C008117 799 46878464 indoleglycerol phosphate
Нужный выход:
Table_4
UID_C CID name
C000002 31799 bevonium
C000002 31800 bevonium
C000386 14950 NULL
C000386 9807916 NULL
C000386 10255083 NULL
C002284 24832095 hypromellose
C008114 5318432 NULL
C008117 799 indoleglycerol phosphate
C008117 444150 indoleglycerol phosphate
C008117 46878464 indoleglycerol phosphate
Как изменить команду присоединиться для получения желаемого вывод?
В качестве альтернативы, как использовать awk в качестве почтового процесса для Table_3 для создания таблицы_4?
Заранее благодарим за консультацию.
Нужна небольшая помощь с советом. Column_1 - это UID (давайте остановим нижнее подчеркивание для простоты). Column_2 - это CID. Column_3 - это имя. Помогите мне перевести это на awk-фразы: {uid_cid [$ 1 OFS $ 2] = 1; next} _and_ key в uid_cid. Пока не подключаюсь. –
Также с трудом выполняется под Windows. Я запускаю awk-код с вводом из table_1 и table_2. Переадресовываем это в новую таблицу_3, чтобы убедиться, что я понимаю обработку awk. Я получаю «errcount: 1» –
Am, используя двойные кавычки (для Windows .bat), вместо одиночной кавычки, для разграничения awk-обработки. –