The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

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



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

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Если же логика Else jadionne UNIX для чайников Вопросы И Ответы 7 11-23-2007 04:27 AM
не может получить логика dineshr85 Shell программирование и сценарии 3 10-11-2007 08:34 AM
Странная логика ganesh123 Shell программирование и сценарии 5 03-20-2007 05:08 PM
Какова логика ramneek Сеть IP 2 09-05-2005 08:42 AM
Как запустить программу, когда я начала моего компьютера? l008com UNIX для чайников Вопросы И Ответы 1 06-23-2002 09:30 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 09-01-2008
user_prady user_prady is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2007
Сообщений: 163
нужна логика, чтобы начать с AWK / ш

Привет друзья!

Я застрял, где с начала ..

Я уже один входной файл, как ниже. когда я хочу записать данные сравнить с моими данными читать .. Проблема заключается в том, что читать данные должны быть сопоставлены с последней записи данных на этот адрес.

Примечание Оба-записи данных И читать данные в один и тот же файл.
TXADDR И TXDATA средств и записи
RXADDR И RXDATA средств - читать

Код:
 120 : TXADDR  : 00000000
средства в 120 раз я передача TXADDR -00000000 И данных будет написана, как ниже
Код:
     240 : TXDATA  0000000000000001
     280 : TXDATA  0000000000000002
     320 : TXDATA  0000000000000003
     360 : TXDATA  0000000000000004
     400 : TXDATA  0000000000000005
Следующий, когда
Код:
 1042 : RXADDR  : 00000000
Он приходит время, чтобы читать с этого адреса 00000000 возвращает меня данные, что написано до т.е. последняя ..


Входной файл
Код:
     120 : TXADDR  : 00000000
     240 : TXDATA  0000000000000001
     280 : TXDATA  0000000000000002
     320 : TXDATA  0000000000000003
     360 : TXDATA  0000000000000004
     400 : TXDATA  0000000000000005
    1042 : RXADDR  : 00000000
    1080 : TXADDR  : 00000020
    1200 : TXDATA  0000000000000011
    1240 : TXDATA  0000000000000012
    1280 : TXDATA  0000000000000013
    1320 : TXDATA  0000000000000014
    1321 : RXDATA  0000000000000001
    1360 : TXDATA  0000000000000015
    1361 : RXDATA  0000000000000002
    1401 : RXDATA  0000000000000003
    1441 : RXDATA  0000000000000004
    1481 : RXDATA  0000000000000005
    1880 : TXADDR  : 00000040
    2000 : TXDATA  0000000000000021
    2040 : TXDATA  0000000000000022
    2080 : TXDATA  0000000000000023
    2120 : TXDATA  0000000000000024
    2120 : TXDATA  0000000000000025
Если есть некоторая путаница с моим объяснением PLS комментарий.

Благодаря И
Привет,
user_prady

Последний раз редактировалось user_prady; на 09-01-2008 01:28 AM..
Old 09-01-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Регистрация: Май 2008
Место проведения: Сидней, Австралия
Сообщений: 1009
Если данные всегда будут получены в порядке, оно было отправлено? Если это так, то попробуйте следующее:

Код:
awk '/TX/ { print $NF }' datafile > sent
awk '/RX/ { print $NF }' datafile > received
diff sent received

Последний раз редактировалось Annihilannic; на 09-01-2008 01:39 AM.. Причина: забыл 'datafile'
Old 09-01-2008
user_prady user_prady is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2007
Сообщений: 163
Цитата:
Первоначально Послано Annihilannic View Post
Если данные всегда будут получены в порядке, оно было отправлено? Если это так, то попробуйте следующее:

Код:
awk '/TX/ { print $NF }' datafile > sent
awk '/RX/ { print $NF }' datafile > received
diff sent received
Спасибо за Ваш ответ .. Извините И если я вам заблуждение ..

Нет его не хотели, что данные не recevied пока уточнить, если я только для чтения. Подумайте, как RAM (чтение памяти)

Я записывает в память по specifing TXADDR И TXDATA и я retrives данных, когда я указать, что адрес RXADDR, я получаю RXDATA например, в прошлом написана в тот адрес.


Собственно Wrrtting и чтения являются независимыми друг от друга.

После того, как я даю TXADDR И TXDATA (5 всплеск - В входного файла вы можете увидеть пять строк исходных данных contineously). Потом после этого я буду читать эти значения, когда идет RXADDR ..

Предположим, я написания к одному и тому же адресу два раза нажмите чтения с этого адреса, то все прочитать последнюю ценность, что написано на этот адрес.

Спасибо
user_prady

Последний раз редактировалось user_prady; на 09-01-2008 02:09 AM..
Old 09-01-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Регистрация: Май 2008
Место проведения: Сидней, Австралия
Сообщений: 1009
Нечто подобное этому? (не тестировалось много)

Код:
awk '
        /TXADDR/ { txaddr=$NF }
        /RXADDR/ { rxaddr=$NF }
        /TXDATA/ { txdata[txaddr,++txindex[txaddr]]=$NF }
        /RXDATA/ {
                if ($NF != txdata[rxaddr,++rxindex[rxaddr]]) {
                        print "rxdata " $NF " for address " rxaddr " does not match transmitted: " txdata[rxaddr,rxindex[rxaddr]]
                }
        }
' inputfile
Old 09-01-2008
user_prady user_prady is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2007
Сообщений: 163
Цитата:
Первоначально Послано Annihilannic View Post
Нечто подобное этому? (не тестировалось много)

Код:
awk '
        /TXADDR/ { txaddr=$NF }
        /RXADDR/ { rxaddr=$NF }
        /TXDATA/ { txdata[txaddr,++txindex[txaddr]]=$NF }
        /RXDATA/ {
                if ($NF != txdata[rxaddr,++rxindex[rxaddr]]) {
                        print "rxdata " $NF " for address " rxaddr " does not match transmitted: " txdata[rxaddr,rxindex[rxaddr]]
                }
        }
' inputfile
Благодаря интернет Annihilannic .. Действительно appriciate вашей логике ..

Пожалуйста, дайте краткое идея того, что делает это заявление,
Код:
txdata[txaddr,++txindex[txaddr]]
Думаю, это 2D массив, но при печати, что только она дает мне ошибку.

Привет,
user_prady

Последний раз редактировалось user_prady; на 09-01-2008 03:29 AM..
Old 09-01-2008
user_prady user_prady is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2007
Сообщений: 163
Цитата:
Первоначально Послано user_prady View Post
Благодаря интернет Annihilannic .. Действительно appriciate вашей логике ..

Пожалуйста, дайте краткое идея того, что делает это заявление,
Код:
txdata[txaddr,++txindex[txaddr]]
Думаю, это 2D массив, но при печати, что только она дает мне ошибку.

Привет,
user_prady

мой друг его, как представляется, не работает, для этого случая

INFILE

Код:
     120 : TXADDR  : 00000000
     240 : TXDATA  0000000000000011
     280 : TXDATA  0000000000000012
     320 : TXDATA  0000000000000013
     360 : TXDATA  0000000000000014
    1080 : TXADDR  : 00000000
    1200 : TXDATA  0000000000000001
    1240 : TXDATA  0000000000000002
    1280 : TXDATA  0000000000000003
    1320 : TXDATA  0000000000000004
    2002 : RXADDR  : 00000000
    2040 : TXADDR  : 00000020
    2160 : TXDATA  0000000000000011
    2200 : TXDATA  0000000000000012
    2240 : TXDATA  0000000000000013
    2280 : TXDATA  0000000000000014
    2281 : RXDATA  0000000000000001
    2321 : RXDATA  0000000000000002
    2361 : RXDATA  0000000000000003
    2401 : RXDATA  0000000000000004
OUTPUT
Код:
rxdata 0000000000000001 for address 00000000 does not match transmitted: 0000000000000011
rxdata 0000000000000003 for address 00000000 does not match transmitted: 0000000000000012
rxdata 0000000000000003 for address 00000000 does not match transmitted: 0000000000000013
rxdata 0000000000000004 for address 00000000 does not match transmitted: 0000000000000014
Здесь в приведенном выше входного файла же адресу (например, в адрес 00000000 Я дважды написания и чтения данных, раз и последние данные являются соответствие с чтения данных, но в моей программе его говорить не совпадают)

Просьба дать мне предложение ..

Привет,
Pradyumna
Old 09-02-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Регистрация: Май 2008
Место проведения: Сидней, Австралия
Сообщений: 1009
Цитата:
Первоначально Послано user_prady View Post
Пожалуйста, дайте краткое идея того, что делает это заявление,
Код:
txdata[txaddr,++txindex[txaddr]]
Думаю, это 2D массив, но при печати, что только она дает мне ошибку.
Да, это двумерный массив индексировало адрес и индекс. Индексы сами состоится во второй один timensional массив, txindex [].

Поэтому для удовлетворения вашей второй ситуации, все, что вам нужно сделать, это сбросить txindex [txaddr] вразрез с 0 каждый раз новую TXADDR не встречается. Точно так же можно сбросить rxindex [rxaddr] борьбы каждый раз, когда RXADDR не встречается.
Closed Thread

Закладки

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

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

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

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




Часовой пояс GMT -4. Текущее время 02:43 AM.


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