The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
ta bort två mönster och ta ett mönster ppat7046 Shell-programmering och Skript 7 04-08-2009 09:19
Ta bort linjerna mellan två mönster utan att ta bort den andra mönster Ilja Shell-programmering och Skript 1 11-14-2008 09:53
Grep Alla linjer mellan 2 olika mönster gurpreet470 Shell-programmering och Skript 2 11-07-2008 04:45
Få linjerna mellan sista förekomsten av två mönster rvz Shell-programmering och Skript 8 08-08-2008 05:32
Hur får man linjer mellan Mönster? racbern Shell-programmering och Skript 11 04-23-2008 07:28

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ök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-26-2009
shamushamu shamushamu is offline
Registered User
  
 

Join Date: Sep 2008
Inlägg: 21
ta bort linjerna mellan mönster

Hej, jag har sökt i forumet hela dagen men kunde inte hitta tillräckligt med koder för att hjälpa mig göra en uppgift. De enda nummer som jag kan komma på är:

sed '/ [0-9] [0-9] / / [0-9] [0-9] / (/ / p, d;) "inputfile> utdatafil

Jag vill sed/awk / grep en fil för två mönster och sedan ta bort linjerna mellan dessa mönster. Se inputfile nedan. Detta är bara en liten del av ett långdraget ärende. Allt i fetstil bör utgå.

I detta fall vill jag söka efter den första mönster [0 0 2] och den sista mönster [2433 2433 2], och sedan ta bort varje linje mellan dessa mönster, men håller linjen [ANT_2] above the line [2433 2433 2] . Likaså vill jag söka efter den första mönster [0 0 4] och den sista mönster [1 1 2], och sedan ta bort varje linje mellan dessa mönster, men håller linjen [ANT_6] above the line [1 1 2]. Antalet linjer mellan dessa pattens kan variera. Det enda som jag ser det är konstant är [0 0].

Någon hjälp eller förslag skulle vara mycket uppskattat.

inputfile
--------
ANT_1
0 0 2 januari 14 10:11:44 2009
Artikel Arkiv Sökväg: / home / la / _drc_
skikt till gaten område förhållandet> 500
ANT_2
2433 2433 2 januari 14 10:13:46 2009
Artikel Arkiv Sökväg: / home / la / _drc_
mt1 till 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 januari 14 10:13:59 2009
Artikel Arkiv Sökväg: / home / la / _drc_
mt2 skillnad gate insatsvaror.
ANT_4
0 0 2 januari 14 10:14:01 2009
Artikel Arkiv Sökväg: / home / la / _drc_
guld skillnad gate insatsvaror.

ANT_5
0 0 4 januari 14 10:14:01 2009
Artikel Arkiv Sökväg: / home / la / _drc_
guld skillnad gate insatsvaror.
ANT_6
1 1 2 januari 14 10:14:01 2009
Artikel Arkiv Sökväg: / home / la / _drc_
guld skillnad gate insatsvaror.
NET_AREA_RATIO_RDBS
0 0 3 januari 14 10:14:01 2009
ANT2.OUT
ANT3.OUT
ANT4.OUT


Önskvärda utdatafil
----------------
ANT_2
2433 2433 2 januari 14 10:13:46 2009
Artikel Arkiv Sökväg: / home / la / _drc_
mt1 till 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 januari 14 10:14:01 2009
Artikel Arkiv Sökväg: / home / la / _drc_
guld skillnad gate insatsvaror.
  #2 (permalänk)  
Old 05-26-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Inlägg: 2518
titta på "Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful" box och se om det finns en liknande lösning för dig.
  #3 (permalänk)  
Old 05-28-2009
shamushamu shamushamu is offline
Registered User
  
 

Join Date: Sep 2008
Inlägg: 21
Ghostdog, Im osäker där Mer Unix / Linux Forum är att jag inte kunde hitta det i detta forum listan.

Jag kunde få en kod från detta forum och tillämpa den på vad jag gör. Det är inte exakt men det är nära.


kod
-----
Kod:
#!/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

Detta är min indatafil:

inputfile b
---------
Kod:
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

Detta är min utdatafilen:

utdatafil e
-----------
Kod:
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)
Jag är inte säker på varför awk kommandot bort raderna som hittas genom sökmönstret [1-9] [1-9]. Den ursprungligen meddelanden för den här koden för att extrahera en linje ovan och två rader nedanför mönster [1-9] [1-9]. Denna kod bakåt. Den utgår i stället för att utvinna det är därför jag måste använda den skillnad att få linjer som var radera. Hör av dig hur du Recode det att hämta i stället för att radera.

Det finns ett problem med denna kod som jag dont förstå är att jag använder mönster [1-9] [1-9], så det bör inte utvinna linje:

55 55 2 4 maj 16:30:30 2009

Men det är vad jag ville. Jag vill också att linje:

20 20 2 4 maj 16:30:03 2009

Men det fick inte utvunnits. Hur ändrar jag mönster / [1-9] [1-9] /, så att den hittar alla strängar, det vill säga, 55 55 2 20 20 2? Jag har provat olika mönster / [1-9] * [1-9] * / eller något längs den linjen, men det fungerar inte.

Ledsen för den långa begäran, men några råd skulle vara mycket uppskattat. Det här är min kod:

Senast redigerad av vgersh99; 05-28-2009 vid 03:01.. Orsak: lagt till kod taggar
Bits Awarded / belasta shamushamu för det här inlägget
Datum Användare Kommentera Belopp
05-28-2009 vgersh99 N / A 0
  #4 (permalänk)  
Old 05-28-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Join Date: februari 2005
Ort: Boston, MA
Inlägg: 5.119
För att hålla forum av hög kvalitet för alla användare, vänligen ta dig tid att formatera dina meddelanden på rätt sätt.

Först och främst använda Kod Märken när du efter någon kod eller data prover så att andra lätt kan läsa koden. Du kan enkelt göra detta genom att markera din kod och sedan klicka på # i redigeringsmenyn. (Du kan också skriva kod taggarna [code] och [/ code] för hand.)

Andra, undvika att lägga till färg eller olika typsnitt och teckenstorlek på ditt inlägg. Selektiv användning av färg för att markera ett ord eller en fras kan vara bra ibland, men genom att använda färg i allmänhet gör forum svårare att läsa, särskilt ljusa färger såsom rött.

Det tredje, var försiktig när du klippa och klistra, redigera alla udda tecken och se till att alla länkar fungerar egendom.

Tack.

UNIX och Linux Forum
  #5 (permalänk)  
Old 05-28-2009
shamushamu shamushamu is offline
Registered User
  
 

Join Date: Sep 2008
Inlägg: 21
Ledsen för det, vgersh99. Jag är ny på Linux och detta forum.

Jag hittade och fixa mitt nummer. Jag ändrade mönstret till:

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

Men jag är fortfarande mycket intresserad av att se om någon har en bättre lösning än detta. Jag tror att detta kan göras med några rader.
Reply

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 04:10.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0