The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



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

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 Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-26-2009
garethsays garethsays is offline
Geregistreerde gebruiker
  
 

Join Date: november 2008
Posts: 14
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
Bijgevoegde bestanden
File Type: txt foo1.txt (3.7 KB, 11 views)

Laatst bewerkt door Franklin52; op 05.26.2009 07:30.. Reden: Onleesbaar, het toevoegen van code tags
  #2 (permalink)  
Old 05-26-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.305
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
Gebruik gawk, nawk of / usr/xpg4/bin/awk op Solaris.
  #3 (permalink)  
Old 05-26-2009
summer_cherry summer_cherry is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Jun 2007
Locatie: Beijing China
Berichten: 1.088
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
  #4 (permalink)  
Old 05-26-2009
garethsays garethsays is offline
Geregistreerde gebruiker
  
 

Join Date: november 2008
Posts: 14
wijzigingen

Wat ik bedoelde te zeggen is dat foo2 niet over enig Record Seperator.

awk '(print NR)' foo1
geeft een antwoord van 1

Het bijgevoegde bestand is de afdruk op het scherm met behulp van de vouw commando.
  #5 (permalink)  
Old 05-26-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.305
Wat is het formaat van foo2 zonder gebruik van de vouw commando?
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 01:45.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0