![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Als Dan Else Logic | jadionne | UNIX voor Dummies Questions & Answers | 7 | 11-23-2007 04:27 |
| kan niet de logica | dineshr85 | Programmeren en Shell Scripting | 3 | 10-11-2007 08:34 |
| Strange Logic | ganesh123 | Programmeren en Shell Scripting | 5 | 03-20-2007 05:08 PM |
| wat de logica | ramneek | IP Networking | 2 | 09-05-2005 08:42 |
| Hoe begin ik een programma als ik mijn computer? | l008com | UNIX voor Dummies Questions & Answers | 1 | 06-23-2002 09:30 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
behoefte aan een logica om te beginnen met awk / sh
Hallo Vrienden, Ik heb geplakt waar te beginnen met .. Ik heb een invoerbestand zoals hieronder. waar ik wil schrijven gegevens te vergelijken met mijn data te lezen .. Het probleem is dat de data te lezen moeten worden vergeleken met de laatste schrijven van gegevens op dat adres. Notitiemaker Beide schrijven data & data te lezen zijn in hetzelfde bestand. TXADDR & TXDATA middel-write RXADDR & RXDATA middel - lees Code:
120 : TXADDR : 00000000 betekent op het moment 120 Ik ben het verzenden van een TXADDR -00000000 & de gegevens die moeten worden geschreven zijn, zoals hieronder Code:
240 : TXDATA 0000000000000001
280 : TXDATA 0000000000000002
320 : TXDATA 0000000000000003
360 : TXDATA 0000000000000004
400 : TXDATA 0000000000000005
Volgende wanneer Code:
1042 : RXADDR : 00000000 Het komt de tijd om te lezen van dat adres 00000000 terugkeert me de gegevens wat er geschreven voordat ie de laatste .. INPUT FILE Code:
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
Als er enige verwarring met mijn uitleg pls commentaar. Thanks & Groeten, user_prady Laatst gewijzigd door user_prady; op 09.01.2008 01:28.. |
|
||||
|
Moeten de gegevens altijd worden ontvangen in de volgorde waarin zij is verzonden? Zo ja, probeer dit: Code:
awk '/TX/ { print $NF }' datafile > sent
awk '/RX/ { print $NF }' datafile > received
diff sent received
Laatst gewijzigd door Annihilannic; op 09.01.2008 01:39.. Reden: vergat de "datafile" |
|
||||
|
Citaat:
Nr. haar niet graag dat de gegevens niet recevied tot tenzij ik te lezen uitsluitend. Denk aan een RAM-geheugen (Read Access Memory) Ik schreef naar RAM door specifing TXADDR & TXDATA en ik retrives de gegevens als ik dat adres met RXADDR, krijg ik RXDATA dwz laatste geschreven op dat adres. Eigenlijk Wrrtting en lezen zijn onafhankelijk van elkaar. Zodra ik TXADDR & TXDATA (5 burst - In INPUT FILE zie je vijf regels van gegevens contineously). Toen na dat ik ben gaan lezen die waarden als RXADDR komt .. Stel, ik ben schriftelijke naar hetzelfde adres tweemaal dan het lezen van dat adres, dan kom de laatste waarde die is geschreven naar dat adres. Bedankt user_prady Laatst gewijzigd door user_prady; op 09.01.2008 02:09.. |
|
||||
|
Iets als dit? (niet getest veel) Code:
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
|
|
||||
|
Citaat:
Kunt u een korte idee wat doet deze verklaring voor Code:
txdata[txaddr,++txindex[txaddr]] Ik denk dat dit een 2D-array, maar als ik print dat alleen geeft me fout. Groeten, user_prady Laatst gewijzigd door user_prady; op 09.01.2008 03:29.. |
|
||||
|
Citaat:
mijn vriend Het lijkt niet voor dit geval INFILE Code:
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 Code:
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 Hier worden de in de bovenstaande input bestand hetzelfde adres (dat wil zeggen, in het adres 00000000 Ik ben schriftelijke tweemaal en het lezen van de gegevens een keer en de laatste gegevens zijn matching met de data te lezen, maar in mijn programma zijn zeggen niet matching) Pls geef me een suggestie .. Groeten, Pradyumna |
|
||||
|
Citaat:
Dus om te voorzien in uw tweede situatie, alles wat je moet doen is de reset txindex [txaddr] teller op 0 elke keer een nieuwe TXADDR wordt aangetroffen. Ook kunt u de rxindex [rxaddr] counter elke keer een RXADDR wordt aangetroffen. |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|