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
Brauchen Sie Hilfe in sed-Kommando (eine leere Zeile übrigens jeder Block von Muster) frozensmilz Shell Programmierung und Scripting 2 01-08-2009 12:12 AM
die über mehrere Zeilen, die ein Muster in Zeile VTAWKVT Shell Programmierung und Scripting 13 12-04-2008 06:40 PM
Kommentar / Löschen einer bestimmten Muster ab der zweiten Zeile die passenden Muster IMAS Shell Programmierung und Scripting 4 10-13-2008 03:37 AM
Drucken Sie Muster im Einklang FK_Daemon Shell Programmierung und Scripting 3 11-23-2007 04:27 PM
sed - Ersetzen Sie die Zeile enthält die Mustervergleich mit einer neuen Zeile kousikan Shell Programmierung und Scripting 2 03-24-2007 07:24 AM

 
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 01-05-2009
frozensmilz's Avatar
frozensmilz frozensmilz is offline
Registrierte Nutzer
  
 

Join Date: Aug 2008
Beiträge: 28
Brauchen Sie Hilfe in sed-Kommando [Druck ein Muster + ihre Linie oder Zeile nicht allein]

Hallo Freunde,

Erst vor kurzem habe ich das Lernen sed Befehl ... eine ich festgestellt, dass sed ist schneller bei der Suche nach den Mustern, als einige meiner Skripte, grep verwendet, um die Muster in einer Datei mit Zeile für Zeile suchen, die Methode ist an der Zeit sein.

Das folgende Skript "strMatch" ist einer von ihnen, die ich bei der Suche nach einem Muster. Sobald das Muster gefunden wird, wird das Muster und die Zeilennummer oder die Zeilennummer allein, wie unten gezeigt.

> Eingabegeräte
strMatch Sample.cpp "PATTERN STRING"
> Leistung
5: PATTERN STRING

> Eingabegeräte
strMatch Sample.cpp "PATTERN STRING" 2
> Leistung
5

Viele meiner anderen Skript hat mit diesem Skript und die Abhängigkeit zu diesem Skript ist fast zu komplex, so dass die neuen Skripte, die strMatch direkt oder indirekt für verschiedene Zwecke ist langsam in der Ausführung. Ich habe festgestellt, dass die folgenden sed Befehl kann verwendet werden, um tweak strMatch, um die Suche beschleunigen ...

sed '/ PATTERN STRING / p' Sample.cpp

Aber ich brauche, um die Linie, wie auch meine früheren strMatch .... Gibt es eine Möglichkeit, um die Ausgabe wie unten

Ausgabe 1 [Zeilennummer & PATTERN]
PATTERN 5 STRING

Ausgabe 2 [Zeilennummer, wo Muster gefunden wurde]
5

Da einige meiner Skripte verwendet nur diese Zeilennummern ..... Mit freundlicher Unterstützung bei der strMatch Skript schnell .... die Zwecke der strMatch ist die Suche nach einem Muster und gibt die Muster, oder das Muster mit der Lage ..... Hier finden Sie aktuelle strMatch Skript ...

Es ist ein besonderer Fall für den Umgang mit "include" Stichwort ..... Ich bin nicht in der Lage zu finden, eine Alternative für "exec"-Befehl, um die Datei Inhalt einer Variablen als solche (mit der richtigen Ausrichtung und )..... irgendwie, wenn ich nach Stichwort enthalten ... es wird exec auf alle Dateien in den Ordner ....... Ich glaube, mit sed i-Kommando wird nicht mit "exec",

Vielen Dank im Voraus ...........
-------------------------------------------------- -----------------------

Filter () (
pattern \u003d $ 1
line \u003d $ 2
for x in $ line; tun
flag \u003d `echo $ x | grep-c $ Muster"

if [$ flag-eq 1]; dann
return $ flag
sonst
return 0
fi
getan
)

# filterKeywords () (

#)


pattern \u003d $ 2
exec <$ 1
# fileCont \u003d "rdfil $ 1"
linCnt \u003d 1

exitCnt \u003d "lincnt $ 1"
cnt \u003d 0
count \u003d 0
mode \u003d $ 3
# rdfil $ 1
while read line; tun

if [ "$ 2" \u003d\u003d "sind"], dann
quitCon \u003d `echo $ line | grep-c "//-------------------------"`
if [$ quitCon-eq 1]; dann
count \u003d$(($ count + 1))
if [$ count-eq 2], dann
Pause
fi
fi
fi

status \u003d `echo $ line | grep-c" $ 2 ""
if [$ status-eq 1]; dann
fflag Filter \u003d "$ Muster $ line"
wcnt \u003d `echo $ fflag | wc-l`
if [$ wcnt \u003d\u003d 1], dann
if [$ exitCnt $ cnt-GE], dann
if [ "$ mode"! \u003d "2"]; dann
case $-Modus in
"NUM") # Zeilennummer
echo $ linCnt
;;

"FON") # erste Auftreten Zeilennummer
echo $ linCnt
Ausfahrt
;;

"FOLN") # erste Auftreten LINE
echo $ line
Ausfahrt
;;

"LN") # nur Zeilen
echo $ line
;;

*) # DEFAULT
echo $ linCnt: $ line
;;
esac
# echo "Hallo"
sonst
echo $ linCnt
fi
# filterKeywords $ line
fi
fi
fi
linCnt \u003d$(($ linCnt + 1))

cnt \u003d$(($ cnt + 1))
# echo $ "---------------------------------------$ cnt exitCnt "
getan

# echo "Bye!"
 

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 07:23 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