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 > 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
Hållplats UNIX hitta på en katalogstruktur efter konstaterandet 1:a förekomsten jm0221 Shell-programmering och Skript 3 06-06-2008 08:19
hjälp med att hitta och ersätta mönster i en fil dusoo Shell-programmering och Skript 0 05-23-2008 04:59
ersätter vissa bokstäver med nya linje? Bashar Shell-programmering och Skript 4 05-13-2007 05:34
hitta och ersätta tomma rader / utrymmen i en fil Gerry405 Sun Solaris 2 07-21-2005 05:49
shellscript för att hitta och ersätta i GD-UNIX Gerry405 UNIX for Dummies Frågor & Svar 3 07-12-2005 09:12

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 01-31-2008
stresing stresing is offline
Registered User
  
 

Join Date: Jan 2008
Inlägg: 3
Hitta n-te förekomst i rad och ersätter det

Hej,

Jag har flera filer med data som måste importeras till en databas. Dessa filer innehåller poster med avgränsningstecken. Vissa poster är korrupta (2 separatorer saknas) och jag behöver rätta till dem innan du importerar dem i db.
Exempel:

| fält1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | | |
| fält1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | field13 | känner D14 | field15
| fält1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | field13

Registren 1 och 2 är korrekta. De består av 15 valfria fält skiljs åt av 15 | tecken.
Record 3 är skadad eftersom det saknas 2 avgränsningstecken framåt field13.
Det ska se ut:
| fält1 | field2 | field3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | | | field13

Hur kan jag uppnå detta genom att använda sed eller awk eller något annat?
All hjälp är mycket uppskattat!

TIA,
Stephan.
  #2 (permalänk)  
Old 01-31-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo (1 .. 9) ^ 2 \, | bc
  
 

Join Date: juni 2003
Ort: Skottland
Inlägg: 431
OK - inte att vinna ett pris för vacker kod, men,

Kod:
 awk -F"|" 'NF==16{print}NF==14{OFS="|";$16=$14;$14="";print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16}' infile
verk. Med den feedback du som är efter o / p:

Kod:
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|||
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|field13|fiel d14|field15
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|||field13
HTH,
  #3 (permalänk)  
Old 01-31-2008
stresing stresing is offline
Registered User
  
 

Join Date: Jan 2008
Inlägg: 3
Hej, tack för ditt snabba svar!

Jag bryr mig inte om ganska lösningar - det fungerar och det är viktigt för mig! Jag testade just på min verkliga filen och det är vad jag letade efter!

Kanske en dag jag har tid att hallicken uttalande - men jag kommer inte att vinna ett pris liksom ...

Tack igen!
  #4 (permalänk)  
Old 01-31-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
missbrukare
  
 

Join Date: Jan 2007
Ort: Варна, България / Milano, Italia
Inlägg: 2.869
Om det är krav:

Kod:
awk 'NF==16||$NF=FS FS $NF' OFS="|" FS="|" filename
Använd nawk eller / usr/xpg4/bin/awk på Solaris.
  #5 (permalänk)  
Old 01-31-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo (1 .. 9) ^ 2 \, | bc
  
 

Join Date: juni 2003
Ort: Skottland
Inlägg: 431
Nu finns du gå - det är vad en riktig guru kommer upp med, och jag är imponerad - inte ens tänkt på det sluga lösningen.

Nice kodexempel radoulov - jag fortsätter att lära något nytt från dina inlägg - du da man.
  #6 (permalänk)  
Old 02-01-2008
stresing stresing is offline
Registered User
  
 

Join Date: Jan 2008
Inlägg: 3
Wow, är det en riktigt trevlig lösning. Jag skulle aldrig ha funnit att det på min egen - naturligtvis är det anledningen till att jag lägger till Dummies forum ... Tack!
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:05.


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