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
få tecken från utdata från ett kommando i en variabel muaz Shell-programmering och Skript 3 06-02-2008 10:13
CUT kommando - Skärning tecken från slutet av strängen JWilliams AIX 2 01-28-2008 09:12
hur man kan hålla newline tecken i kommandot utförande resultatet? pankai Shell-programmering och Skript 2 01-02-2008 05:41
Kommando för att få endast tre tecken i Månadens prashanth_gs UNIX for Dummies Frågor & Svar 2 02-12-2007 07:38
Unix Kommando för att hitta NUL Karaktärer fundidor UNIX for Dummies Frågor & Svar 2 05-01-2005 12:32

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 04-25-2007
IHulky IHulky is offline
Registered User
  
 

Join Date: april 2007
Inlägg: 4
Sed kommandot med tecken

Hej alla, jag hoppas att någon kan hjälpa mig:

I följande rad:

PRIHDR, 2809999444, 2007 6,1, 20070423, 9;; 4021473000003;; 4021473000003, 8714231530688, EUR;

Resultatet bör vara:

PRIHDR, 2809999444, 2007 6,1, 20070423, 4;; 4021473000003;; 4021473000003, 8714231530688, EUR;

Jag har provat några varianter av följande kommando:

sed 's /, 9,, /, 4,, "<oldfile> newfile

När jag kör detta kommando det berättar uppfyllda vad man skall göra med "," hur kan jag lösa problemet?

Tack på förhand

IHulky

ps de andra linjerna i dokumentet (linje 2 och vidare) måste kopieras och att den nya filen.

Senast redigerad av IHulky; 04-25-2007 vid 08:57..
  #2 (permalänk)  
Old 04-25-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Inlägg: 2.540
du kan använda awk? säger du bara har den linjen i en fil
Kod:
# awk -F ";" 'OFS=";"{$5=4;print}' file
PRIHDR;2809999444;2007 6.1;20070423;4;;4021473000003;;4021473000003;8714231530688;EUR;;
  #3 (permalänk)  
Old 04-25-2007
IHulky IHulky is offline
Registered User
  
 

Join Date: april 2007
Inlägg: 4
Citat:
Ursprungligen postat av ghostdog74
du kan använda awk? säger du bara har den linjen i en fil
Kod:
# awk -F ";" 'OFS=";"{$5=4;print}' file
PRIHDR;2809999444;2007 6.1;20070423;4;;4021473000003;;4021473000003;8714231530688;EUR;;
Det fungerade perfekt tack, kan du berätta hur du hålla kommando på den första raden. I raderna under vissa tecken har ändrats till 4.

Om det är någon hjälp bara första raden börjar med PRIHDR

Tack
  #4 (permalänk)  
Old 04-25-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Inlägg: 2.540
Kod:
awk -F ";" 'BEGIN {OFS = ";"} /^PRIHDR/{$5=4;print}  ' file
  #5 (permalänk)  
Old 04-25-2007
IHulky IHulky is offline
Registered User
  
 

Join Date: april 2007
Inlägg: 4
Måste testa det mer när jag kör kommandot man skriver ut korrekt output på skärmen, även om själva filen inte ändras.

Tack för info, måste testa det ytterligare i morgon eftersom det är 02:30 på morgonen här i Nederländerna och arbetet börjar på 08:00 ..

Om du har någon idé är att jag älskar att höra dem.

Tack igen
  #6 (permalänk)  
Old 04-25-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Inlägg: 2.540
awk ändrar inte filer om du inte fråga det. Du kan bara omdirigera utmatningen till en annan fil med omdirigeringen tecken ( "awk kommandot"> anotherfile)
  #7 (permalänk)  
Old 04-26-2007
anbu23 anbu23 is offline Forum Advisor  
Registered User
  
 

Join Date: mars 2006
Ort: Bangalore, Indien
Inlägg: 1.398
Citat:
Ursprungligen postat av IHulky
Hej alla, jag hoppas att någon kan hjälpa mig:

I följande rad:

PRIHDR, 2809999444, 2007 6,1, 20070423, 9;; 4021473000003;; 4021473000003, 8714231530688, EUR;

Resultatet bör vara:

PRIHDR, 2809999444, 2007 6,1, 20070423, 4;; 4021473000003;; 4021473000003, 8714231530688, EUR;

Jag har provat några varianter av följande kommando:

sed 's /, 9,, /, 4,, "<oldfile> newfile

När jag kör detta kommando det berättar uppfyllda vad man skall göra med "," hur kan jag lösa problemet?

Tack på förhand

IHulky

ps de andra linjerna i dokumentet (linje 2 och vidare) måste kopieras och att den nya filen.
Lägg snedstrecket
Kod:
sed '/^PRIHDR/s/;9;;/;4;;/' <oldfile >newfile
mv newfile oldfile
Kod:
perl -i -ne ' s/;9;;/;4;;/ if ( /^PRIHDR/ ); print ' file
Closed Thread

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 02:23.


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