![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
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 |
| invoervak | ruben.rodrigues | Programmeren en Shell Scripting | 2 | 01-28-2009 06:17 |
| msg invoervak | ruben.rodrigues | UNIX voor Dummies Questions & Answers | 0 | 01-28-2009 04:34 |
| Reading specifieke inhoud van 1 invoerbestanden en voeg het naar een andere input bestand | sksahu | Programmeren en Shell Scripting | 5 | 01-14-2009 06:09 |
| vales toewijzen aan arrary | koti_rama | Programmeren en Shell Scripting | 0 | 07-24-2007 02:43 |
| Hoe te snel voor de input & accepteren input in een lijn | newbie168 | Programmeren en Shell Scripting | 2 | 09-27-2005 05:02 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
awk help - input van vales op EFILE tot annother
Zie bijgevoegde test-bestand voor een betere uitleg en opmaak van bestanden .... dank
foo1 Code:
H2600 LINE: H2600 H2600 H2600 MYSystems Ltd. (Feb 18 2009) V1760R1130 1 2213133522.79N 81 027.09E 500814.01502345.9 145 9 837 E1760R1130 1 2 2213133522.44N 81 027.33E 500821.11502335.1 145 9 837 Z1760R1130 11 2213133512.77N 81 031.86E 500957.51502038.3 145 9 837 Z1760R1130 12 2213133512.15N 81 030.27E 500909.81502019.1 145 9 837 R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01 R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41 R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51 R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51 V1760R1130 1 2214133523.56N 81 026.81E 500805.51502369.5 145 9 849 E1760R1130 1 2 2214133523.21N 81 027.04E 500812.61502358.7 145 9 849 Z1760R1130 11 2214133513.54N 81 031.57E 500948.61502061.8 145 9 849 Z1760R1130 12 2214133512.93N 81 029.98E 500900.81502042.9 145 9 849 R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01 R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41 R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51 R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51 V1760R1130 1 2392133740.94N 805939.69E 499389.81506589.83182.4145 94330 E1760R1130 1 2 2392133523.21N 81 027.04E 500812.61502358.7 145 9 849 Z1760R1130 11 2392133513.54N 81 031.57E 500948.61502061.8 145 9 849 Z1760R1130 12 2392133512.93N 81 029.98E 500900.81502042.9 145 9 849 foo2 Code:
key key 2213 3200 2214 3198 2392 3182 Ik zou graag lezen foo1 en kolom 65 te vervangen door 70 met 2 dollar uit foo2 als lijn in foo1 begint met V en kolommen 65 tot 70 zijn leeg en als de kolommen 22 tot 25 in foo1 match $ 1 van foo2. Ook het bestand foo2 lijkt niet te hebben ieder stuk sepeator en ik zou graag NR ingesteld gelijk aan 80 tekens. Dus mijn output file zal uitzien Code:
H2600 LINE: H2600 H2600 H2600 MYSystems Ltd. (Feb 18 2009) V1760R1130 1 2213133522.79N 81 027.09E 500814.01502345.93200 145 9 837 E1760R1130 1 2 2213133522.44N 81 027.33E 500821.11502335.1 145 9 837 Z1760R1130 11 2213133512.77N 81 031.86E 500957.51502038.3 145 9 837 Z1760R1130 12 2213133512.15N 81 030.27E 500909.81502019.1 145 9 837 R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01 R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41 R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51 R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51 V1760R1130 1 2214133523.56N 81 026.81E 500805.51502369.53198 145 9 849 E1760R1130 1 2 2214133523.21N 81 027.04E 500812.61502358.7 145 9 849 Z1760R1130 11 2214133513.54N 81 031.57E 500948.61502061.8 145 9 849 Z1760R1130 12 2214133512.93N 81 029.98E 500900.81502042.9 145 9 849 R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01 R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41 R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51 R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51 V1760R1130 1 2392133740.94N 805939.69E 499389.81506589.83182.4145 94330 E1760R1130 1 2 2392133523.21N 81 027.04E 500812.61502358.7 145 9 849 Z1760R1130 11 2392133513.54N 81 031.57E 500948.61502061.8 145 9 849 Z1760R1130 12 2392133512.93N 81 029.98E 500900.81502042.9 145 9 849 Laatst bewerkt door Franklin52; op 05.26.2009 07:30.. Reden: Onleesbaar, het toevoegen van code tags |
|
||||
|
Probeer dit:
Code:
awk 'NR==FNR{a[$1]=$2;next}
/^V/ && substr($0,65,5)==" " && substr($0,22,4) in a {
print substr($0,1,64) a[substr($0,22,4)] substr($0,69);next
}
1' foo2 foo1
|
|
||||
|
Code:
my %hash=(
2213 => 3200,
2214 => 3198,
2392 => 3182,
);
while(<DATA>){
if(/^V/ && (substr($_,64,6)=~/\s{6}/)){
substr($_,64,4)=$hash{substr($_,21,4)};
}
print;
}
__DATA__
H2600 LINE:
H2600
H2600
H2600 MYSystems Ltd. (Feb 18 2009)
V1760R1130 1 2213133522.79N 81 027.09E 500814.01502345.9 145 9 837
E1760R1130 1 2 2213133522.44N 81 027.33E 500821.11502335.1 145 9 837
Z1760R1130 11 2213133512.77N 81 031.86E 500957.51502038.3 145 9 837
Z1760R1130 12 2213133512.15N 81 030.27E 500909.81502019.1 145 9 837
R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01
R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41
R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51
R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51
V1760R1130 1 2214133523.56N 81 026.81E 500805.51502369.5 145 9 849
E1760R1130 1 2 2214133523.21N 81 027.04E 500812.61502358.7 145 9 849
Z1760R1130 11 2214133513.54N 81 031.57E 500948.61502061.8 145 9 849
Z1760R1130 12 2214133512.93N 81 029.98E 500900.81502042.9 145 9 849
R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01
R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41
R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51
R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51
V1760R1130 1 2392133740.94N 805939.69E 499389.81506589.83182.4145 94330
E1760R1130 1 2 2392133523.21N 81 027.04E 500812.61502358.7 145 9 849
Z1760R1130 11 2392133513.54N 81 031.57E 500948.61502061.8 145 9 849
Z1760R1130 12 2392133512.93N 81 029.98E 500900.81502042.9 145 9 849
|
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|