The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
google unix.com



UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna!

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Ta bort vissa rader catgovind Shell-programmering och Skript 3 04-30-2008 06:40
Hur man läser ett särskilt avsnitt och ändra i kn.naresh Shell-programmering och Skript 2 04-18-2008 01:30
Skriva ut rader med särskilda awk NF jehrome_rando Shell-programmering och Skript 1 03-13-2007 04:23
tittar på specifika linjer dakid UNIX for Dummies Frågor & Svar 3 05-25-2006 04:25
Hur du specifika rader i en fil? hedgehog001 UNIX for Dummies Frågor & Svar 2 08-23-2005 01:04

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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-18-2008
Jenny.palmy Jenny.palmy is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 16
Hur du använder sed ändra specifika linjer

Kan någon berätta för mig hur jag kan använda sed att ändra riktning följande rader? filen är följande:

"TEST/SI1573.lab"
3670 8920 h #
8920 9530 hh
9530 10694 ih
.
"TEST/DR1/FAKS0/SI2203.lab"
9730 9580 h #
9580 9840 dh
9840 10652 ix
10652 11997 r
........

Jag vill ändra första fälten till 0 av de linjer som följer de linjer som började med "TEST. Filen efter operationen bör vara:
"TEST/SI1573.lab"
0 8920 h #
8920 9530 hh
9530 10694 ih
.
"TEST/DR1/FAKS0/SI2203.lab"
0 9580 h #
9580 9840 dh
9840 10652 ix
10652 11997 r
........
kan någon tala om för min om hur man kan göra det? Tack på förhand.
  #2 (permalänk)  
Old 05-18-2008
eran era is offline Forum Advisor  
Herder av Useless Cats (På sabbatsår)
  
 

Join Date: mars 2008
Ort: / det är / / bara / bin / sh
Inlägg: 3652

Kod:
sed -e '/^"TEST/{p;N;s/.*\n[0-9]*/0/;}' filename

Det finns många olika versioner av sedSå din kanske inte förstår exakt samma dialekt som min.

Detta ser ut för "test" (med ett öppnande av dubbla citattecken) i början av raden. Om hittades, det skrivs att linje (p) Och bifogar nästa rad att mönstret rymden (N). Detta medför mönstret utrymme att innehålla två rader; TEST linje och följande rad, åtskilda av en newline. Sedan den ersätter (s// /) Den första raden i mönstret utrymme, newline och varje nummer strax efter newline med ett noll. På den punkten är vi gjort, vad som finns kvar i mönstret rymden kommer att tryckas som vanligt.

sed syntax är mycket knapphändig, om du inte har särskilda skäl att använda sed för detta, kanske en likvärdig awk eller Perl skriptet skulle vara mer maintainable (särskilt om du inte är väl förtrogen med sed).

Senast redigerad av era; 05-18-2008 vid 06:46.. Motivering: Kanske föredrar awk eller Perl trots allt ...?
  #3 (permalänk)  
Old 05-18-2008
Jenny.palmy Jenny.palmy is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 16
Tack, det fungerar.

Jag undrar hur man kan använda awk för att göra detta.
  #4 (permalänk)  
Old 05-18-2008
eran era is offline Forum Advisor  
Herder av Useless Cats (På sabbatsår)
  
 

Join Date: mars 2008
Ort: / det är / / bara / bin / sh
Inlägg: 3652

Kod:
awk '/^"TEST/ { t=1 ; print; next }
t==1 { $1 = "0"; t=0; }1' filename

Detta medför den rörliga t skall fastställas till 1 på följande rad efter provet linje. Om så är fallet, att ersätta de första området med noll, och ange t tillbaka till noll. Den sista 1 orsakar de linjer som når denna punkt i manus som ska skrivas ut. (Det är en kortform; standardåtgärden i awk är att skriva ut om villkoret är sant, och 1 som ett villkor är alltid sant.)
  #5 (permalänk)  
Old 05-18-2008
Jenny.palmy Jenny.palmy is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 16
Tack, era.

Tror du att du kan rekommendera mig någon bok eller websit? Jag skulle vilja veta mer om manus. Jag har alltid stöter på vissa problem och kunde inte räkna ut själv.
  #6 (permalänk)  
Old 05-18-2008
eran era is offline Forum Advisor  
Herder av Useless Cats (På sabbatsår)
  
 

Join Date: mars 2008
Ort: / det är / / bara / bin / sh
Inlägg: 3652
En av mina personliga favoriter är Kernighan & Pike's UNIX Programming Environment men det är mycket gamla, så några av de perifera detaljer har förändrats ganska mycket sedan dess. En annan perenn är Friedl's Mastering Regular Expressions, Men du kan kämpa med det första om du inte är bekant med de verktyg som den omfattar.

The O'Reilly sed & Awk Boken är en bra introduktion till sed och awk, men det finns många on-line handledningar som förmodligen är lika bra.

I FAQ-delen har fler länkar; Jag är ny för Unix. Vilka böcker ska jag läsa? - The UNIX Forums
Closed Thread

Komihåglista

Taggar
regex, reguljära uttryck

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 05:21.


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