The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

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
Hvordan sette inn og slette linjen etter ønske linje RahulJoshi Shell programmering og Skripting 4 10-20-2008 10:27
Trenger Script for å sette inn kolon i hver linje av filen canopus15 UNIX for Dummies Spørsmål og svar 4 08-05-2008 08:03
sette inn en linje etter bestemte linje namishtiwari Shell programmering og Skripting 8 05-21-2008 02:16
Hvordan sette inn ny linje i datafilen bruker script Sona UNIX for Dummies Spørsmål og svar 2 08-22-2006 01:17
Sett inn en linje som den første linjen i en svært stor fil skrik UNIX for Advanced & ekspertbrukere 3 03-09-2005 01:22

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 11-21-2008
appsguy616 appsguy616 is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Innlegg: 27
awk script for å sammenligne og sette inn en linje

Hei
Jeg vil sammenligne en streng på fast posisjon 10-20 for alle linjer som begynner med 6. hvis de ikke samsvarer med det ta en kopi av en linje som starter med 1 og sett det før linjen som begynner med 6. Hvordan får jeg dette? Hjelp

Eg

1 test 1 765533 7643743
6 ja 3 5363653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
7 323323 4343434435 545
6 ja 3 5373653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
6 ja 3 5373653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
6 ja 3 5383653 373833
7 323323 4343434435 545
8 4345435435 5454545 55

slik at produksjonen skal være

1 test 1 765533 7643743

6 ja 3 5363653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
7 323323 4343434435 545
1 test 1 765533 7643743
6 ja 3 5373653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
6 ja 3 5373653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
1 test 1 765533 7643743
6 ja 3 5383653 373833
7 323323 4343434435 545
8 4345435435 5454545 55
  #2 (permalink)  
Old 11-22-2008
replytoshishir replytoshishir is offline
Registrert bruker
  
 

Bli Dato: mai 2006
Beliggenhet: Bangalore
Innlegg: 23
kan du forklare litt mer .. liker det er det du søker etter, og fra hvilke som linje nos .... Jeg tror jeg kan hjelpe deg .......

thnx shishir
  #3 (permalink)  
Old 11-22-2008
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2853
Gitt din eksempeldataene det sømmer som $ 4 vil fungere fint.
Bruke nawk eller /usr/xpg4/bin/awkSolaris:

Code:
awk '/^1 / { s = $0 }
/^6 / && !t[$4]++ {
  c++ && $0 = s RS $0
  }1' infile
  #4 (permalink)  
Old 11-23-2008
summer_cherry summer_cherry is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: juni 2007
Sted: Beijing Kina
Innlegg: 1079
perl:
Code:
open FH,"<d:/a.txt";
while(<FH>){
	if(m/^1.*/){
		$line=$_;
		print;
		next;
	}
	if(m/^6.*/){
		@t=split;
		if($temp eq ""){
			$temp=$t[3];
			print;
		}
		else{
			if(!($t[3] eq $temp)){
				print $line;
				print $_;
				$temp=$t[3];
			}	
			else{
				print;
			}		
		}
	}
	else{print;}
}
  #5 (permalink)  
Old 11-23-2008
appsguy616 appsguy616 is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Innlegg: 27
hei
Feltet ligger i fast posisjon 10-20 ikke 4. feltet nødvendigvis. Kan du hjelpe

Takk
  #6 (permalink)  
Old 11-24-2008
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2853
Men du setter i rødt stillingene 9-15, Ikke 10-20!

Med 9-15 det skal være:

Code:
awk '/^1 / { s = $0 }
/^6 / && !t[substr($0,9,7)]++ {
  c++ && $0 = s RS $0
  }1' infile
Hvis du virkelig vil 10-20, Bør du endre argumentene som sendes til substr.
  #7 (permalink)  
Old 11-24-2008
appsguy616 appsguy616 is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Innlegg: 27
Som fungerer, Takk.
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 01:59.


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