The UNIX and Linux Forums  

Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google unix.com



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Сценарий извлечения неверные данные из текстового файла jermaine4ever Shell программирование и сценарии 6 03-16-2009 12:18 PM
Неверный логин шекелей? Juterassee SUN Solaris 5 10-30-2008 11:08 AM
Неправильное имя espace1000 UNIX для чайников Вопросы И Ответы 2 08-22-2008 07:48 AM
Логин Неправильно sydney2008 Red Hat 6 08-22-2008 05:57 AM
Неправильное имя каталога jand102821 UNIX для чайников Вопросы И Ответы 1 06-19-2002 05:35 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 04-21-2009
вершина pinnacle is offline
Зарегистрированный пользователь
  
 

Регистрация: Апрель 2009
Сообщений: 182
Awk неверные данные.

Я использую следующую команду:


Код:
nawk -F"," 'NR==FNR {a[$2$3]=$1;next} a[$2$3] {print a[$2$3],$1,$2,$3}'  file1 file2

Я получаю 40 записей выходных.
Но когда я импортировать file1 и file2 в MS Access я получаю 140 записей.
И я знаю, 140 правильно рассчитывать.

Благодарим Вас за помощь в устранении этого скрипта
Old 04-21-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Модератор
  
 

Регистрация: Февраль 2005
Место: Boston, MA
Сообщения: 5131
Это, безусловно, поможет, если вы предоставили более подробные описания того, что вы пытаетесь достичь с выборку данных и ожидаемых результатов.

Мой хрустальный шар является немного нечеткой, однако:

Код:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2

Old 04-21-2009
вершина pinnacle is offline
Зарегистрированный пользователь
  
 

Регистрация: Апрель 2009
Сообщений: 182
Цитата:
Первоначально Послано vgersh99 View Post
Это, безусловно, поможет, если вы предоставили более подробные описания того, что вы пытаетесь достичь с выборку данных и ожидаемых результатов.

Мой хрустальный шар является немного нечеткой, однако:

Код:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2
vgersh99

У меня есть два файла
$ Голове file1
ZIP, Имя, Фамилия
07777, ABC, DEF
22584, декабрь, ДЛО
25487, XYZ, JKL
25488, Dim, Kio

$ Голове file2
Цель сервера баз данных
SSN, Имя, Фамилия
123456789, ABC, DEF
123456789, декабря, ДЛО
123456789, XYZ, JKL
123456789, Dim, Kio
хотели Результат:
SSN, ZIP, FirstName, LastName


Код:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file2 file1
40 Matches


Код:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file1 file2
140 matches

140 матчах является правильным, но я знаю, как следует уделять 140 я не знаете, почему ее предоставления разница.

Можете ли вы объяснить эту часть ($ 2 SUBSEP $ 3)
A [$ 2, $ 3] мы используем здесь, потому что ее это запятую inputfile или это общее правило
If I Dont использовать, то и я получаю же результат
Old 04-21-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Модератор
  
 

Регистрация: Февраль 2005
Место: Boston, MA
Сообщения: 5131
Цитата:
Первоначально Послано зенит View Post
vgersh99

У меня есть два файла
$ Голове file1
ZIP, Имя, Фамилия
07777, ABC, DEF
22584, декабрь, ДЛО
25487, XYZ, JKL
25488, Dim, Kio

$ Голове file2
Цель сервера баз данных
SSN, Имя, Фамилия
123456789, ABC, DEF
123456789, декабря, ДЛО
123456789, XYZ, JKL
123456789, Dim, Kio
хотели Результат:
SSN, ZIP, FirstName, LastName


Код:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file2 file1
40 Matches


Код:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file1 file2
140 matches
Приведенные выше 2 вызовы в точности то же самое. Я не понимаю, почему вы получаете различные результаты.
Также я не понимаю, почему у вас трейлинг двойная кавычка (в красном) в обоих случаях?
Цитата:
Первоначально Послано зенит
140 матчах является правильным, но я знаю, как следует уделять 140 я не знаете, почему ее предоставления разница.

Можете ли вы объяснить эту часть ($ 2 SUBSEP $ 3)
A [$ 2, $ 3] мы используем здесь, потому что ее это запятую inputfile или это общее правило
If I Dont использовать, то и я получаю же результат
Нет, это не потому, что ваш файл через запятую. Вы можете построить ваши массива индекс только concatenating строки ($ 2 $ 3) или (что лучше для дальнейшей обработки) в этом:

Код:
a[$2,$3]

В контексте индекса массива здания, в "," заменяется на AWK внутренние переменные SUBSEP. Если позже вы решите "Сплит" индекс (чтобы найти его частей), можно разделить на SUBSEP. Если вы просто сцеплять строки, вы не сможете восстановить ее индекс оригинальных деталей.

Первоначально решение должно размещаться дать вам желаемый результат.
Учитывая file1:

Код:
zip,FirstName,Lastname
07777,abc,def
22584,dec,dlo
25487,xyz,jkl
25488,dim,kio

и file2:

Код:
SSN,Firstname,LastName
123456789,abc,def
123456789,dec,dlo
123456789,xyz,jkl
123456789,dim,kio

Продолжительность:

Код:
nawk -F, 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file2 file1

Результаты:

Код:
123456789,07777,abc,def
123456789,22584,dec,dlo
123456789,25487,xyz,jkl
123456789,25488,dim,kio

Проверьте ваш file1 и file2 - узнать, есть ли там уже какие-либо расхождения и / или вдавившиеся пространств.

Кроме того, это не входит в Ваш первый форум и вы просили в прошлом: пожалуйста, используйте BB Код теги при публикации данных и примеры кода.
Old 04-21-2009
вершина pinnacle is offline
Зарегистрированный пользователь
  
 

Регистрация: Апрель 2009
Сообщений: 182
Цитата:
Первоначально Послано vgersh99 View Post
Приведенные выше 2 вызовы в точности то же самое. Я не понимаю, почему вы получаете различные результаты.
Также я не понимаю, почему у вас трейлинг двойная кавычка (в красном) в обоих случаях?

Нет, это не потому, что ваш файл через запятую. Вы можете построить ваши массива индекс только concatenating строки ($ 2 $ 3) или (что лучше для дальнейшей обработки) в этом:

Код:
a[$2,$3]

В контексте индекса массива здания, в "," заменяется на AWK внутренние переменные SUBSEP. Если позже вы решите "Сплит" индекс (чтобы найти его частей), можно разделить на SUBSEP. Если вы просто сцеплять строки, вы не сможете восстановить ее индекс оригинальных деталей.

Первоначально решение должно размещаться дать вам желаемый результат.
Учитывая file1:

Код:
zip,FirstName,Lastname
07777,abc,def
22584,dec,dlo
25487,xyz,jkl
25488,dim,kio

и file2:

Код:
SSN,Firstname,LastName
123456789,abc,def
123456789,dec,dlo
123456789,xyz,jkl
123456789,dim,kio

Продолжительность:

Код:
nawk -F, 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file2 file1

Результаты:

Код:
123456789,07777,abc,def
123456789,22584,dec,dlo
123456789,25487,xyz,jkl
123456789,25488,dim,kio

Проверьте ваш file1 и file2 - узнать, есть ли там уже какие-либо расхождения и / или вдавившиеся пространств.

Кроме того, это не входит в Ваш первый форум и вы просили в прошлом: пожалуйста, используйте BB Код теги при публикации данных и примеры кода.

Код:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2

В приведенном выше код, если я переключу file1 и fie2 позиции тогда я получаю разные результаты.
Я не могу отправить файлы из-за чувствительности данных.
Я визуально проверяются файлы, и я вижу, нет специальных символов, или ничего.
Есть специальная команда для проверки этого.

Благодарим Вас за ответ.
Old 04-22-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Модератор
  
 

Регистрация: Февраль 2005
Место: Boston, MA
Сообщения: 5131
Цитата:
Первоначально Послано зенит View Post
Код:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2

В приведенном выше код, если я переключу file1 и fie2 позиции тогда я получаю разные результаты.
Я не могу отправить файлы из-за чувствительности данных.
Я визуально проверяются файлы, и я вижу, нет специальных символов, или ничего.
Есть специальная команда для проверки этого.

Благодарим Вас за ответ.
Пациент: Doc, это действительно больно, когда я тот!
Доктор: Тогда не делают тот!

Позиции файлов в командной строке, имеет важное значение для картирования полей из одного файла в другой. Посмотрите на ваши файлы данных поля - стараться, чтобы увидеть разницу, и посмотреть на исходный комментарий для картографирования логики.
Удачи.
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 04:30 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0