The UNIX and Linux Forums  

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



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

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Создание соединения узлов для графики anjas Shell программирование и сценарии 4 06-18-2009 05:42 AM
Больших файлов FTP - Получение "Соединение отказано" bullz26 HP-UX 4 10-25-2008 07:52 AM
Проблема при FTP из большого файла rprajendran UNIX для чайников Вопросы И Ответы 1 05-28-2008 02:19 AM
узлы kamisi UNIX для чайников Вопросы И Ответы 3 05-30-2002 04:47 PM
I-узлы djatwork UNIX для чайников Вопросы И Ответы 4 09-25-2001 01:29 PM

Reply
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 07-04-2009
anjas anjas is offline
Зарегистрированный пользователь
  
 

Регистрация: Mar 2009
Место: Бали, Индонезия
Сообщений: 17
Создание большого соединения узлов для графики

Привет власти пользователя,

В принципе, эта нить является продолжением предыдущего :

Создание соединения узлов для графики

Тем не менее, я хочу объяснить еще раз.

Я этого следующие данные:

file1
А. А.
А. А. Б
А. А. С
BB X
BB Y
BB Z
CC O
CC С
CC Q
. .
. .
. .
. .

и я хочу, чтобы включить их в узлы связи, как это:
file2

А АА А
А АА B
А АА C
B AA C
B AA B
C AA C
BB X X
BB X Y
BB X Z
BB Y Z
BB Y Y
BB Z Z
. . .
. . .
. . .
. . .

Я сделал это соотношение, чтобы создать график. Размер файла составляет более 6.000.000 линий.
Для небольших файлов (100.000 линий), я использовал этот скрипт в предыдущие темы:

вступить-O 1.2 0 2.2 -1 1 -2 1 file1 file1 | nawk '! A [$ 3 $ 2 $ 1]; (A [$ 1 $ 2 $ 3 ]++}'
вступить-O 1.2 0 2.2 -1 1 -2 1 file1 file1 | nawk '$ 1 <$ 3 (печати, затем) (печати $ 3, $ 2, $ 1)' | сорт-U
nawk '
NR \u003d\u003d ПЧН (C \u003d A [$ 1], а [$ 1] \u003d C? C "" $ 2: $ 2;) следующая
(C \u003d A [$ 1]
если (C) (
Сплит (C, B)
для (К Б) (
P \u003d $ 2 <B [K]? $ 2 "" $ 1 "" B [K]: B [K] "" $ 1 "" $ 2
если (! D [P] + +) P печати
)
)
)
'File1 file1
Для небольших файлов, эти три вида сценариев может создать сеть только в менее чем 10 минут. Однако, для файлов с более чем 6.000.000 строк, даже после одного дня, не было результатов на всех . Есть ли быстрый способ сделать это?


Любое предложение, как можно создать с помощью file2 Perl или AWK? Tx
Old 07-06-2009
otheus's Avatar
otheus otheus is offline Forum Staff  
Модератор Ала режим
  
 

Регистрация: Февраль 2007
Место проведения: Инсбрук, Австрия
Сообщения: 1893
Чтобы сохранить форумов высокого качества для всех пользователей, пожалуйста, время для форматирования ваших сообщений неправильно.

В частности, пожалуйста, используйте Код Теги При публикации каких-либо кода или данных, так что другие образцы могут легко прочитать код. Вы легко можете сделать это, выделив свой код, а затем нажав на # в меню редактирования. (Вы можете также ввести код тегами [код] и [/ код] рукой.)

Спасибо.

В UNIX и Linux Форумы
Old 07-13-2009
anjas anjas is offline
Зарегистрированный пользователь
  
 

Регистрация: Mar 2009
Место: Бали, Индонезия
Сообщений: 17
Извините за ошибки. Теперь, я отремонтировал размещения.

Привет власти пользователя,

В принципе, эта нить является продолжением предыдущей:

Создание соединения узлов для графики

Тем не менее, я хочу объяснить еще раз.

Я этого следующие данные:

file1
А. А.
А. А. Б
А. А. С
BB X
BB Y
BB Z
CC O
CC С
CC Q
. .
. .
. .
. .

и я хочу, чтобы включить их в узлы связи, как это:
file2

А АА А
А АА B
А АА C
B AA C
B AA B
C AA C
BB X X
BB X Y
BB X Z
BB Y Z
BB Y Y
BB Z Z
. . .
. . .
. . .
. . .

Я сделал это соотношение, чтобы создать график. Размер файла составляет более 6.000.000 линий.
Для небольших файлов (100.000 линий), я использовал этот скрипт в предыдущие темы:


Код:
join -o 1.2 0 2.2 -1 1 -2 1 file1 file1 | nawk '!a[$3$2$1];{a[$1$2$3]++}'


Код:
join -o 1.2 0 2.2 -1 1 -2 1 file1 file1 | nawk '$1<$3{print;next}{print$3,$2,$1}' | sort -u


Код:
nawk '
NR==FNR { c = a[$1]; a[$1] = c?c" "$2:$2; next }
{ c = a[$1]
if (c) {
split(c,b)
for (k in b) {
p = $2<b[k]?$2" "$1" "b[k]:b[k]" "$1" "$2
if (!d[p]++) print p
}
}
}
' file1 file1

Для небольших файлов, эти три вида сценариев может создать сеть только в менее чем 10 минут. Однако, для файлов с более чем 6.000.000 строк, даже после одного дня, нет никаких результатов вообще. Есть ли быстрый способ сделать это?


Любое предложение, как можно создать с помощью file2 Perl или AWK? Tx
Old 07-13-2009
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
Модератор
  
 

Регистрация: Oct 2003
Место проведения: -31.96,115.84
Сообщения: 1409
Попробуйте ...
Код:
awk '{n=++a[$1];b[$1,n]=$2}END{for(c in a)for(n=1;n<=a[c];n++)for(z=1;z<=n;z++)print b[c,z],c,b[c,n]}' file1|sort -k 2,2 -k 1,1 -k 3,3

Результат ...
Код:
A aa A
A aa B
A aa C
B aa B
B aa C
C aa C
X bb X
X bb Y
X bb Z
Y bb Y
Y bb Z
Z bb Z
O cc O
O cc P
O cc Q
P cc P
P cc Q
Q cc Q

Reply

Закладки

Теги
График, узлы

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

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

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

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




Часовой пояс GMT -4. Текущее время 11:56 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