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
Partiellt Begäran kommer ... vänligen hjälp pa.chidhambaram IP Nätverk 0 02-05-2008 11:19
Kan ett shell script dra det första ordet (eller n-te ord) av varje rad i en textfil? knepig Shell-programmering och Skript 5 08-17-2006 07:29
vsftpd döljer delvis inlagda jhod22 Linux 3 07-08-2006 05:49
Grep alla filer som matchar delanbudsinfordran filename mharley Shell-programmering och Skript 3 06-08-2005 03:17
Intresserad av partiell kommandot produktion. videsh77 UNIX for Dummies Frågor & Svar 1 12-15-2004 10:35

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 07-16-2008
FunibonE FunibonE is offline
Registered User
  
 

Join Date: Jul 2008
Plats: Silicon Forest
Inlägg: 16
partiell ord ersätts med hjälp sed

Exempel på innehållet i ett ärende:

001FILE
002FILE
003FILE
099FILE
111FILE

Är det möjligt att söka efter [000-111] FILE och fortfarande hålla antalet del av resultatet i takt? Antalet del är en föränderlig variabel men FILE del förblir densamma. Jag vill söka efter alla [000-111] FILE och rymden dem till "001 FILE" "002 FILE" etc.

Om jag använder sed 's / [000-111] FILE / & / g "Det kommer i princip ersätta med samma variabel som hittats i sökningen.

Jag vet hur de ska söka efter den rörliga men vet inte hur man kan hålla en del av resultatet. Snittet funktion skulle vara trevligt men jag kan inte tycks kunna kalla det in genom sed.

Söka efter filer och lägger till en plats är inget alternativ, eftersom vissa av de övriga innehållet har samma namn och kan inte ske.

Några idéer?
  #2 (permalänk)  
Old 07-16-2008
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Join Date: Dec 2003
Ort: Florida
Inlägg: 1.926
Kod:
sed -e 's/^[0-1][0-9][0-9]/& /'  file
  #3 (permalänk)  
Old 07-16-2008
FunibonE FunibonE is offline
Registered User
  
 

Join Date: Jul 2008
Plats: Silicon Forest
Inlägg: 16
Citat:
Ursprungligen postat av fpmurphy View Post
Kod:
sed -e 's/^[0-1][0-9][0-9]/& /'  file
Tack, men den här filen har andra numrerade variabler också så jag kan inte söka efter nummer ensamma eller tecken ensam. Jag måste kunna söka efter 001FILE som helhet och sedan dela upp produktionen till 001 FILE.

På en annan not, det behöver inte vara sed. Jag jobbar på Sun Solaris 10, så som allt som finns tillgängligt som standard kommer att fungera också.

Några andra idéer?
  #4 (permalänk)  
Old 07-17-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Join Date: maj 2008
Plats: Sydney, Australien
Inlägg: 1009
Inte säker på att jag har full förståelse för kraven, men prova den här varianten:

Kod:
sed -e '/^[0-1][0-9][0-9]FILE/s/^[0-1][0-9][0-9]/& /'  file
Om detta inte är vad du vill ge oss lite mer prov indata (inklusive de linjer du inte vill ändra) och resultatet du förväntar dig från att uppgifter.
  #5 (permalänk)  
Old 07-17-2008
FunibonE FunibonE is offline
Registered User
  
 

Join Date: Jul 2008
Plats: Silicon Forest
Inlägg: 16
Citat:
Ursprungligen postat av Annihilannic View Post
Inte säker på att jag har full förståelse för kraven, men prova den här varianten:

Kod:
sed -e '/^[0-1][0-9][0-9]FILE/s/^[0-1][0-9][0-9]/& /'  file
Om detta inte är vad du vill ge oss lite mer prov indata (inklusive de linjer du inte vill ändra) och resultatet du förväntar dig från att uppgifter.

Hej. Jag försökte att hålla frågan enkel men jag antar att jag inte längre så här är det faktiska data.

Kod:
TRUE 6.8785794488e-05 0.000 0.000 FALSE 6.8785794488e-05 0.000 0.000TRUE 1 FALSE 1 TRUE
TRUE 1.8093516870e-02 0.999 0.030 TRUE 1.8093255236e-02 0.999 0.057TRUE 1 FALSE 1 TRUE
Ovanstående är bara 2 raden i en mycket stor fil. Problemet är, jag behöver ett utrymme mellan 0.000 och riktigt så jag kan importera den korrekt i Excel.

Siffrorna är inte konstant och är en föränderlig variabel. Jag måste kunna rikta bara rader som innehåller [0-1]. [0-9] [0-9] [0-9] SANT och sätta ett mellanslag / tab för att separera och det sanna.

Tack.
  #6 (permalänk)  
Old 07-17-2008
sudhamacs sudhamacs is offline
Registered User
  
 

Join Date: juni 2008
Inlägg: 98
sed -e '/ [0-1] [0-9] [0-9] SANT / s / [0-1] [0-9] [0-9] / & / g' filen
  #7 (permalänk)  
Old 07-17-2008
FunibonE FunibonE is offline
Registered User
  
 

Join Date: Jul 2008
Plats: Silicon Forest
Inlägg: 16
Thumbs up

Citat:
Ursprungligen postat av sudhamacs View Post
sed -e '/ [0-1] [0-9] [0-9] SANT / s / [0-1] [0-9] [0-9] / & / g' filen
Det fungerade!
Tack alla så mycket.
Closed Thread

Komihåglista

Taggar
Solaris

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 09:55.


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