The UNIX and Linux Forums  

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Wie einfügen und löschen Sie alle Zeile nach Wunsch online RahulJoshi Shell Programmierung und Scripting 4 10-20-2008 11:27 AM
Need Script um Doppelpunkte in jeder Zeile der Datei canopus15 UNIX for Dummies Questions & Answers 4 08-05-2008 09:03 PM
Legen Sie eine Linie nach bestimmten Zeile namishtiwari Shell Programmierung und Scripting 8 05-21-2008 03:16 PM
Wie neue Zeile in die Datei mit dem Skript Sona UNIX for Dummies Questions & Answers 2 08-22-2006 02:17 AM
Legen Sie eine Zeile wie die erste Zeile in einer sehr großen Datei Kreischen UNIX für Fortgeschrittene und Experten 3 03-09-2005 01:22 AM

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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 11-21-2008
appsguy616 appsguy616 is offline
Registrierte Nutzer
  
 

Join Date: Aug 2008
Beiträge: 27
awk-Skript zu vergleichen, und legen Sie eine Zeile

Hi
Ich möchte einen String vergleichen zu festen Position 10-20 für alle Zeilen mit 6. wenn sie keine Übereinstimmung sollte sie eine Kopie einer Zeile beginnend mit 1 und fügen Sie es vor der Zeile, die mit 6. Wie kann ich das? Bitte helfen

Z. B.

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

so dass die Ausgabe sollte

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
Registrierte Nutzer
  
 

Registriert seit: Mai 2006
Ort: Bangalore
Beiträge: 23
Können Sie bitte erklären, wie etwas mehr .. was sind Sie auf der Suche nach und von dem aus die Linie Nr. .... Ich glaube, ich kann Ihnen dabei helfen, .......

thnx Shishir
  #3 (permalink)  
Old 11-22-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lage: Варна, България / Milano, Italia
Posts: 2926
Da Ihre Probe ist es, dass die Nähte $ 4 funktioniert.
Verwenden nawk oder /usr/xpg4/bin/awk auf Solaris:


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  
Registrierte Nutzer
  
 

Join Date: Jun 2007
Ort: Peking, China
Posts: 1092
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
Registrierte Nutzer
  
 

Join Date: Aug 2008
Beiträge: 27
Hi
Das Feld ist in festen Position 10-20 nicht der 4. Bereich unbedingt. Können Sie bitte helfen

Danke
  #6 (permalink)  
Old 11-24-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lage: Варна, България / Milano, Italia
Posts: 2926
Aber kann man in der rot-Positionen 9-15, Nicht 10-20!

Mit 9-15 Es sollte:


Code:
awk '/^1 / { s = $0 }
/^6 / && !t[substr($0,9,7)]++ {
  c++ && $0 = s RS $0
  }1' infile

Wenn Sie wirklich wollen 10-20, Sollten Sie ändern die Argumente, die an substr.
  #7 (permalink)  
Old 11-24-2008
appsguy616 appsguy616 is offline
Registrierte Nutzer
  
 

Join Date: Aug 2008
Beiträge: 27
Das funktioniert, Vielen Dank.
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 01:40 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0