The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
slette to mønstre og fjerne et mønster ppat7046 Shell Programmering og Scripting 7 04-08-2009 09:19 AM
Slet linjer mellem to mønstre uden at slette den anden mønster Ilja Shell Programmering og Scripting 1 11-14-2008 09:53 AM
Grep Alle linjer mellem 2 forskellige mønstre gurpreet470 Shell Programmering og Scripting 2 11-07-2008 04:45 PM
Kom godt i linjerne mellem sidste forekomst af to mønstre rvz Shell Programmering og Scripting 8 08-08-2008 05:32 PM
Hvordan du kan få linjer i mellem mønstre? racbern Shell Programmering og Scripting 11 04-23-2008 07:28 AM

Reply
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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 05-26-2009
shamushamu shamushamu is offline
Registreret Bruger
  
 

Join Date: Sep 2008
Stillinger: 21
slette linjer mellem mønstre

Hej, jeg har søgt i dette forum hele dagen lang, men ikke var i stand til at finde nok koder til at hjælpe mig med at udføre en opgave. Den eneste kode, at jeg kan komme med er dette:

sed '/ [0-9] [0-9] / / [0-9] [0-9] / (/ / p d;)' inddatafilen> uddatafil

Jeg vil gerne sed/awk / grep en fil for to forskellige mønstre og derefter slette de linjer mellem disse mønstre. Se venligst inddatafilen nedenfor. Dette er blot en lille del af en lang fil. Alt med fed bør udgå.

I dette tilfælde vil jeg gerne søge efter den første mønster [0 0 2] og den sidste mønster [2433 2433 2], og derefter slette hver linje mellem disse mønstre, men at holde den linje [ANT_2] over linjen [2433 2433 2] . Ligeledes vil jeg gerne søge efter den første mønster [0 0 4] og den sidste mønster [1 1 2], og derefter slette hver linje mellem disse mønstre, men at holde den linje [ANT_6] over linjen [1 1 2]. Antallet af linjer mellem disse pattens kan variere. Det eneste, jeg kan se, at der konstant er [0 0].

Enhver hjælp eller forslag ville være meget værdsat.

inddatafilen
--------
ANT_1
0 0 2 jan 14 10:11:44 2009
Regel File stinavn: / home / la / _drc_
lag til gate område ratio> 500
ANT_2
2433 2433 2 jan 14 10:13:46 2009
Regel File stinavn: / home / la / _drc_
mt1 til gate område ratio> 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
Regel File stinavn: / home / la / _drc_
mt2 diff gate indgange.
ANT_4
0 0 2 jan 14 10:14:01 2009
Regel File stinavn: / home / la / _drc_
guld diff gate indgange.

ANT_5
0 0 4 jan 14 10:14:01 2009
Regel File stinavn: / home / la / _drc_
guld diff gate indgange.
ANT_6
1 1 2 jan 14 10:14:01 2009
Regel File stinavn: / home / la / _drc_
guld diff gate indgange.
NET_AREA_RATIO_RDBS
0 0 3 jan 14 10:14:01 2009
ANT2.OUT
ANT3.OUT
ANT4.OUT


Ønskede uddatafil
----------------
ANT_2
2433 2433 2 jan 14 10:13:46 2009
Regel File stinavn: / home / la / _drc_
mt1 til gate område ratio> 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
Regel File stinavn: / home / la / _drc_
guld diff gate indgange.
  #2 (permalink)  
Old 05-26-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Sep 2006
Indlæg: 2.514
se på "Mere UNIX og Linux Forum Emner som du måske vil finde nyttige" boks og se, om der er en lignende løsning for dig.
  #3 (permalink)  
Old 05-28-2009
shamushamu shamushamu is offline
Registreret Bruger
  
 

Join Date: Sep 2008
Stillinger: 21
Ghostdog, Im ikke sikker på hvor Mere Unix / Linux Forum er fordi jeg ikke kunne finde den i dette forum listen.

Jeg var i stand til at få en kode fra dette forum og anvender det til, hvad jeg gør. Det er ikke præcise, men det er tæt.


kode
-----
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

Dette er mit input fil:

inddatafilen 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

Dette er min outputfil:

uddatafil 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)
Jeg er ikke sikker på, hvorfor awk kommando slette de linjer, der er fundet ved søgning mønster [1-9] [1-9]. Den oprindeligt udstationering for denne kode er til at udpakke en linje over og to linjer under mønster [1-9] [1-9]. Denne kode er tilbagestående. Det fjerner i stedet for at udtrække det er derfor, jeg er nødt til at bruge diff at få linier, der var slette. Lad mig vide, hvordan du recode den til ekstrakt i stedet for at slette.

Der er et problem med denne kode, at jeg dont forstå, er, at jeg bruger mønster [1-9] [1-9], så det bør ikke være udvinder linjen:

55 55 2 4 mai 16:30:30 2009

Men det er hvad jeg ville. Jeg vil også gerne linjen:

20 20 2 4 mai 16:30:03 2009

Men det fik ikke ekstraheret. Hvordan ændrer jeg mønster / [1-9] [1-9] /, så det vil finde alle strenge, dvs; 55 55 2 eller 20 20 2? Jeg har prøvet et andet mønster / [1-9] * [1-9] * / eller noget langs denne linje, men det virker ikke.

Sorry for den lange anmodning men enhver rådgive ville være meget værdsat. Dette er min kode:

Sidst redigeret af vgersh99; 05-28-2009 på 03:01 PM.. Årsag: tilføjet kode tags
Bits Awarded / Debiteret til shamushamu til dette indlæg
Dato Bruger Kommentar Mængde
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
Beliggenhed: Boston, MA
Indlæg: 5.119
At holde fora høj kvalitet for alle brugere, skal du tage dig tid til at formatere dine indlæg korrekt.

Først og fremmest brug Kode Tags Når du sender en kode eller data prøver så andre let kan læse din kode. Du kan nemt gøre dette ved at fremhæve din kode og derefter klikke på # i redigering menuen. (Du kan også skrive kode tags [code] og [/ code] i hånden.)

Andet, undgå at tilføje farve eller forskellige skrifttyper og skriftstørrelsen til dine indlæg. Selektiv brug af farver for at fremhæve et enkelt ord eller en sætning kan være nyttige til tider, men ved hjælp af farve, i almindelighed, gør fora sværere at læse, især lyse farver som rød.

Tredje, være forsigtige, når du klippe og indsætte, redigere noget mærkeligt tegn og sørg for, at alle links arbejder ejendom.

Tak.

UNIX og Linux Forums
  #5 (permalink)  
Old 05-28-2009
shamushamu shamushamu is offline
Registreret Bruger
  
 

Join Date: Sep 2008
Stillinger: 21
Ked af, at vgersh99. Jeg er ny til Linux og dette forum.

Jeg har lige fundet og fastsætte min kode. Jeg har ændret det mønster, der skal:

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

Men jeg er stadig meget interesseret i at se, hvis nogen har en bedre løsning end denne. Jeg mener, at dette kan gøres ved hjælp af et par linjer.
Reply

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 01:15 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0