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
ksh - lesen Datei mit Leerzeichen MOMI Shell Programmierung und Scripting 2 03-17-2008 03:02 PM
Stripping führende Leerzeichen auf der rechten gerechtfertigt Namen Marcia P UNIX for Dummies Questions & Answers 2 02-28-2006 10:32 PM
Entfernen führende und nachfolgende Leerzeichen von Daten zwischen den Tags in XML. jhmr7 UNIX for Dummies Questions & Answers 2 05-18-2005 11:27 AM
Strip führende und nachfolgende Leerzeichen nur in einer Shell-Variable mit Leerzeichen jerardfjay Shell Programmierung und Scripting 6 03-07-2005 02:24 PM
Führende und nachfolgende Leerzeichen sleepster Shell Programmierung und Scripting 7 10-29-2003 11:48 PM

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 03-15-2008
lijojoseph lijojoseph is offline
Registrierte Nutzer
  
 

Join Date: März 2008
Beiträge: 6
führende Leerzeichen entfernen von einer Linie

Hallo Freunde

Ich benötige Hilfe,

Ich habe eine Datei, die sieht wie folgt aus

TEMP 014637065 014637065 517502 517502 RTE
517502 517502 RTE
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3
YTERS GJK JKLS

wann immer es ist einer der führenden Platz auf Zeile (hier gibt es einen Platz am Beginn der Linie 2 und 6, die nicht sichtbar im Thread), brauche ich, um diese und fügen Sie zu der vorherigen Zeile. Das heißt, ich will eine Ausgabedatei, die aussieht wie
TEMP 014637065 014637065 517502 517502 RTE RTE 517502 517502
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3 YTERS GJK JKLS
  #2 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Posts: 4342

Code:
awk '/^ /{print p $0; p=""; next}
p !~ /^ / && p {print p}
{p=$0}
END{if(!/^ /) {print}}
' file

Grüße

Zuletzt bearbeitet von Franklin52; am 03-15-2008 07:34 AM.. Grund: modifation-Code
  #3 (permalink)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Registrierte Nutzer
  
 

Join Date: März 2008
Beiträge: 6
Zitat:
Zitat von Franklin52 View Post
Code:
awk '/^ /{print p $0; p=""; next}
p !~ /^ / && p {print p}
{p=$0}
END{if(!/^ /) {print}}
' file

Grüße
Hallo Franklin,
Ich habe versucht mit den oben genannten Option ist es, die Syntax-Fehler für die zweite Zeile
Fehlermeldungen
*******
awk: Syntaxfehler in der Nähe der Linie 1
awk: Rettung in der Nähe der Linie 1
*******
auch habe ich versucht mit awk '/ ^ / p (print $ 0;) nächsten p \u003d $ (0)) END (print ", aber hier ist es nicht, die Linien, ohne ein Leerzeichen

pls help

Zuletzt bearbeitet von lijojoseph; am 03-15-2008 09:12 AM..
  #4 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Posts: 4342
Verwenden Sie nawk oder / usr/xpg4/bin/awk auf Solaris

Grüße
  #5 (permalink)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Registrierte Nutzer
  
 

Join Date: März 2008
Beiträge: 6
Smile

Frank,
Vielen Dank, es funktioniert perfekt mit nawk.

auch hier habe ich ein kleines Problem
Wenn es Leerzeichen in 2 aufeinander folgenden Zeilen ist es nicht auf die zweite ..
das ist
*** Eingabedatei
TEMP 014637065 014637065 517502 517502 RTE
517502 517502 RTE
226
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3
YTERS GJK JKLS

wenn führende Leerzeichen gibt es in den Zeilen 2 und 3 dann die Ausgabe sollte wie folgt aussehen:
TEMP 014637065 014637065 517502 517502 RTE 517502 517502 RTE 2634
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3
YTERS GJK JKLS

Können Sie bitte helfen?

Auch können Sie nur explane mir die awk-Code, wenn Sie Zeit haben
Noch einmal vielen Dank für youe Hilfe
  #6 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Posts: 4342
Versuchen Sie folgendes:


Code:
awk '
/^ /{p=p $0;next}
p{print p}
{p=$0}
END{print p}
' file

Erklärung des Codes:

/ ^ / P ($ p \u003d 0;) nächsten # Mehrere Zeilen, die mit einem Raum mit der vorherigen und nächsten Zeile lesen

Die nächsten Befehle Wirkung der anderen Linien:

p (print p) # Drucken Sie die vorherige Zeile gesetzt, wenn
p \u003d $ (0) # P
END (print p) # Es sind keine weiteren Linien, Drucken vorherige Zeile (n)

Verwenden Sie nawk oder / usr/xpg4/bin/awk auf Solaris

Grüße
Closed Thread

Lesezeichen

Tags
solaris

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 06:08 PM.


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