The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
input box ruben.rodrigues Shell programmering og Skripting 2 01-28-2009 06:17
msg input box ruben.rodrigues UNIX for Dummies Spørsmål og svar 0 01-28-2009 04:34
Reading konkrete innholdet fra 1 skriving av filer og legger den til en annen inndatafilen sksahu Shell programmering og Skripting 5 01-14-2009 06:09
tildele vales til arrary koti_rama Shell programmering og Skripting 0 07-24-2007 03:43
Hvordan ber om innspill og godtar skriving på én linje newbie168 Shell programmering og Skripting 2 09-27-2005 06: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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 05-26-2009
garethsays garethsays is offline
Registrert bruker
  
 

Bli Dato: november 2008
Innlegg: 14
awk hjelp - innspill fra Vales på efile til annother

Vennligst se vedlagt testfil for bedre forklaring og formatering av filer .... takk

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


Jeg ønsker å lese gjennom foo1 og erstatt kolonne 65 til 70 med $ 2 fra foo2 hvis
linje i foo1 starter med V og kolonner 65 til 70 er tomme, og hvis kolonnene 22 til 25 i foo1 match $ 1 fra foo2.

Også filen foo2 ikke synes å ha noen posten sepeator og jeg ønsker å sette NR å være lik 80 tegn.

Så mitt utdatafilen vil se ut

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
Vedlagte filer
File Type: txt foo1.txt (3,7 KB, 12 visninger)

Sist endret av Franklin52; 05-26-2009 kl 08:30.. Reason: uleselig, legger kode koder
  #2 (permalink)  
Old 05-26-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4315
Prøv dette:

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
Bruk gawk, nawk eller / usr/xpg4/bin/awk på Solaris.
  #3 (permalink)  
Old 05-26-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: juni 2007
Sted: Beijing Kina
Innlegg: 1088
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
Registrert bruker
  
 

Bli Dato: november 2008
Innlegg: 14
modifikasjoner

Det jeg mente å si var at foo2 ikke har noen Record seperator.

awk '(print NR)' foo1
returnerer et svar av 1

Den vedlagte filen utskriften til skjermen ved hjelp av flippen kommandoen.
  #5 (permalink)  
Old 05-26-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4315
Hva er formatet foo2 uten å bruke flippen kommandoen?
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 12:22.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0