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
zwei Muster löschen und entfernen Sie ein Muster ppat7046 Shell Programmierung und Scripting 7 04-08-2009 10:19 AM
Löschen von Zeilen zwischen zwei Muster ohne Löschen der zweiten Muster Ilja Shell Programmierung und Scripting 1 11-14-2008 09:53 AM
Grep Alle Linien zwischen 2 verschiedenen Mustern gurpreet470 Shell Programmierung und Scripting 2 11-07-2008 04:45 PM
Erste die Linien zwischen letzten Vorkommen von zwei Muster RVZ Shell Programmierung und Scripting 8 08-08-2008 06:32 PM
Wie man zwischen den Zeilen in Patterns? racbern Shell Programmierung und Scripting 11 04-23-2008 08:28 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 05-26-2009
shamushamu shamushamu is offline
Registrierte Nutzer
  
 

Join Date: Sep 2008
Beiträge: 21
löschen zwischen Muster

Hi, ich habe in diesem Forum hast den ganzen Tag lang, aber nicht in der Lage war, ausreichend Codes um mir zu helfen, eine Aufgabe. Der einzige Code, ich kann kommen, ist diese:

sed '/ [0-9] [0-9] / / [0-9] [0-9] / (/ / p, d;)' Eingabedatei> Ausgabedatei

Ich möchte sed/awk / grep eine Datei für zwei Muster und löschen Sie dann die Linien zwischen den Mustern. Bitte beachten Sie die Eingabedatei ein. Dies ist nur ein kleiner Teil einer langen Datei. Alles in Fettdruck sollte gestrichen werden.

In diesem Fall möchte ich auf die Suche nach dem ersten Muster [0 0 2] und der letzte Muster [2433 2433 2], und löschen Sie dann jede Zeile zwischen diesen Mustern, sondern um die Zeile [ANT_2] über der Zeile [2433 2433 2] . Ebenso möchte ich auf die Suche nach dem ersten Muster [0 0 4] und der letzte Muster [1 1 2], und löschen Sie dann jede Zeile zwischen diesen Mustern, sondern um die Zeile [ANT_6] über der Zeile [1 1 2]. Die Anzahl der Zeilen zwischen diesen Pattens kann variieren. Das einzige, was ich sehe, ist die Konstante ist [0 0].

Jede Hilfe oder Vorschlag wäre sehr zu schätzen.

Eingabedatei
--------
ANT_1
0 0 2 Jan 14 10:11:44 2009
Artikel Datei Pfadname: / home / la / _drc_
lagig auf Tor-Verhältnis> 500
ANT_2
2433 2433 2 Jan 14 10:13:46 2009
Artikel Datei Pfadname: / home / la / _drc_
MT1 zu Tor-Verhältnis> 40
P 1 44
-2109300 -10645700
-2095600 -10645700
-2095600 -10649700
-2088500 -10649700
-2088500 -10655700
-2071900 -10655700
ANT_3
0 0 2 Jan 14 10:13:59 2009
Artikel Datei Pfadname: / home / la / _drc_
MT2 diff Tor-Eingänge.
ANT_4
0 0 2 Jan 14 10:14:01 2009
Artikel Datei Pfadname: / home / la / _drc_
diff Gold Gate-Eingänge.

ANT_5
0 0 4 Jan 14 10:14:01 2009
Artikel Datei Pfadname: / home / la / _drc_
diff Gold Gate-Eingänge.
ANT_6
1 1 2 Jan 14 10:14:01 2009
Artikel Datei Pfadname: / home / la / _drc_
diff Gold Gate-Eingänge.
NET_AREA_RATIO_RDBS
0 0 3 Jan 14 10:14:01 2009
ANT2.OUT
ANT3.OUT
ANT4.OUT


Gewünschte ausgabedatei
----------------
ANT_2
2433 2433 2 Jan 14 10:13:46 2009
Artikel Datei Pfadname: / home / la / _drc_
MT1 zu Tor-Verhältnis> 40
P 1 44
-2109300 -10645700
-2095600 -10645700
-2095600 -10649700
-2088500 -10649700
-2088500 -10655700
-2071900 -10655700
ANT_6
1 1 2 Jan 14 10:14:01 2009
Artikel Datei Pfadname: / home / la / _drc_
diff Gold Gate-Eingänge.
  #2 (permalink)  
Old 05-26-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Sep 2006
Beiträge: 2554
Blick auf die "Mehr UNIX-und Linux-Forum Themen Sie finden könnte hilfreich" ein und sehen, ob es eine ähnliche Lösung für Sie.
  #3 (permalink)  
Old 05-28-2009
shamushamu shamushamu is offline
Registrierte Nutzer
  
 

Join Date: Sep 2008
Beiträge: 21
Ghostdog, Im nicht sicher, wo die Mehr Unix / Linux-Forum ist, weil ich konnte sie nicht finden in diesem Forum Liste.

Ich war in der Lage, um einen Code aus diesem Forum und es zu dem, was ich mache. Es ist nicht genau, aber es ist nahe.


Code
-----

Code:
#!/bin/bash
function drcext
{
# Extract one line above and two lines below a pattern
awk '/[1-9] [1-9] /{ before-=1;after=2; next }
after { after--;next }
{ store[++before]=$0}
END {
for(i=1;i<=before;i++) {
print store[i]
}
}' b > c
diff b c > d
sed -i 's/[0-9]*,[0-9]*[a-z]*[0-9]*/----------------------------------------------------------------/g' d
sed -i 's/< //g' d
# Add a variable content to the beginning of the file
rulepath=`grep Rule d`
sed -i '/Rule/d' d
sed "1i $rulepath" < d > e
}
drcext


Das ist meine Eingabedatei:

inputfile b
---------

Code:
die1 1000

WARN_1
0 0 2 May 4 16:20:21 2009 
Rule File Pathname: /coms
Rule File Pathname: /home/la/_tij4_drc_
TEOS_CH minimum spacing to VIA_1 is 10.0u, must not overlap
23_K
1 1 2 May 4 16:24:00 2009 
Rule File Pathname: /home/la/_tij4_drc_
TEOS_CH must be enclosed by Metal_3 10um min
p 1 4
CN tmplt c 1 0 0 1 0 0
-1512633 -8706882
-1507100 -8715212
-1507100 -8668836
-1512633 -8677166

Rule File Pathname: /home/la/_tij4_drc_
SU8_chm to Bond Pad min space is 10 um 
45_D2
20 20 2 May 4 16:30:03 2009 
Rule File Pathname: /home/la/_tij4_drc_
SU8_chm to Bond Pad at the end of a row min space is 100 um
e 1 2
CN die1 c 1 0 0 1 0 0
-1366000 -9000000 -1366000 -8991408
-1461658 -9029146 -1457396 -9031988
e 2 2
-1366000 -9000000 -1366000 -8981773
-1457396 -9031988 -1450898 -9034615
e 3 2
-1366000 -8804227 -1366000 -8800000

Rule File Pathname: /home/la/_tij4_drc_
Primer must be enclosed by SU8_prm
AT_1
2 2 2 May 4 16:30:20 2009 
Rule File Pathname: /home/la/_tij4_drc_
target must be covered by (drawn) dso
p 1 36
CN target_bondalign c 1 0 0 1 -1676600 7170000
-24000 0
-23635 -4168

Rule File Pathname: /home/la/_tij4_drc_
SU8_prm must overlap dso over gld_tgt by 3um min
AT_5
2 2 2 May 4 16:30:20 2009 
Rule File Pathname: /home/la/_tij4_drc_
SU8_prm/chm/nzl not allowed over gld_tgt
p 1 36
CN target_bondalign c 1 0 0 1 -1676600 7170000
-24000 0
-23635 -4168
-22553 -8208
-20785 -12000
-18385 -15427

Rule File Pathname: /home/la/_tij4_drc_
contact not allowed in stitch zone
su8_14_26A
55 55 2 May 4 16:30:30 2009 
Rule File Pathname: /home/la/_tij4_drc_
NOZZLE minimum width is 10um (for 14um thick material)
p 1 114
CN resistor_array c 1 0 0 1 0 0
-1052100 -7525307
-1052067 -7525796
-1052066 -7525803
-1051974 -7526268


Das ist mein Ausgabedatei:

ausgabedatei e
-----------

Code:
Rule File Pathname: /home/la/_tij4_drc_
----------------------------------------------------------------
23_K
1 1 2 May 4 16:24:00 2009 
TEOS_CH must be enclosed by Metal_3 10um min
----------------------------------------------------------------
AT_1
2 2 2 May 4 16:30:20 2009 
target must be covered by (drawn) dso
----------------------------------------------------------------
AT_5
2 2 2 May 4 16:30:20 2009 
SU8_prm/chm/nzl not allowed over gld_tgt
----------------------------------------------------------------
su8_14_26A
55 55 2 May 4 16:30:30 2009 
NOZZLE minimum width is 10um (for 14um thick material)

Ich bin mir nicht sicher, warum der awk Befehl Löschen Sie die Zeilen, die sich durch die Suche pattern [1-9] [1-9]. Die ursprünglich für die Buchung ist für diesen Code, um die eine Zeile oben und zwei Zeilen unterhalb des pattern [1-9] [1-9]. Dieser Code ist rückwärtskompatibel. Es löscht, anstatt des Extrakts, dass ist der Grund, warum ich die Verwendung des diff, um die Zeilen, die gelöscht werden soll. Bitte lassen Sie mich wissen, wie man recode es zu extrahieren, anstatt zu löschen.

Es gibt ein Problem mit diesem Code, I dont verstehen, ist, dass ich das Muster [1-9] [1-9], so sollte es nicht extrahieren Sie die Zeile:

55 55 2 4. Mai 16:30:30 2009

Aber das ist es, was ich wollte. Ich möchte auch die Zeile:

20 20 2 4. Mai 16:30:03 2009

Aber es hat nicht gewonnen. Wie ändere ich das Muster / [1-9] [1-9] /, so dass sie sich beliebige Zeichenfolge, dh, 55 55 2 oder 20 20 2? Ich habe versucht, ein anderes Muster / [1-9] * [1-9] * / oder etwas in dieser Linie, aber es funktioniert nicht.

Sorry für die lange Anfrage aber jede beraten wäre sehr zu schätzen. Das ist mein Code:

Zuletzt bearbeitet von vgersh99; am 05-28-2009 04:01 PM.. Grund: Code-Tags hinzugefügt
Ausgezeichnet Bits / zu Lasten shamushamu zu diesem Post
Datum User Kommentar Betrag
05-28-2009 vgersh99 N / A 0
  #4 (permalink)  
Old 05-28-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2005
Ort: Boston, MA
Posts: 5131
Um die Foren hoher Qualität für alle Benutzer, wenden Sie sich bitte die Zeit nehmen, zu formatieren Sie Ihre Beiträge korrekt.

Zunächst einmal, verwenden Sie Code Tags Wenn Sie irgendwelche Code-oder Daten Proben, so dass andere erkennen können Sie den Code. Sie können ganz einfach, indem Sie hierzu Ihren Code und klicken Sie dann auf die # in der Bearbeitung Menü. (Sie können auch Code-Tags [code] und [/ code] mit der Hand.)

Zweitens, um das Hinzufügen Farbe oder verschiedenen Schriftarten und Schriftgröße auf Ihre Beiträge. Gezielten Einsatz von Farbe, um ein einzelnes Wort oder einen Satz kann nützlich sein, zu Zeiten, sondern mit Farbe, in der Regel, um die Foren schwieriger zu lesen, vor allem helle Farben wie rot.

Drittens: Seien Sie vorsichtig, wenn Sie cut-and-Paste, bearbeiten alle ungeraden Zeichen und stellen Sie sicher, dass alle Links sind Eigentum.

Danke.

Die UNIX-und Linux-Foren
  #5 (permalink)  
Old 05-28-2009
shamushamu shamushamu is offline
Registrierte Nutzer
  
 

Join Date: Sep 2008
Beiträge: 21
Sorry about that, vgersh99. Ich bin neu in diesem Forum und Linux.

Ich habe gerade festgestellt, und setzt meine Codes. Ich habe die Muster zu:


Code:
awk '/^[1-9]/{ before-=1;after=2; next }


Aber ich bin immer noch sehr interessiert, um zu sehen, wenn jemand eine bessere Lösung als diese. Ich glaube, das kann man mit ein paar Zeilen.
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 03:06 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