![]() |
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.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
| Filformat frågan: Produktion av sqlplus | deepakgang | UNIX for Dummies Frågor & Svar | 2 | 10-25-2007 03:56 |
| Produktionen i ett visst format med awk | Raynon | Shell-programmering och Skript | 4 | 01-24-2007 04:07 |
| format produktion | Tornado | Shell-programmering och Skript | 7 | 11-19-2006 06:17 |
| Format produktionen av fil | getdpg | Shell-programmering och Skript | 9 | 01-24-2006 12:50 |
| ls utdataformatet | tonyt | UNIX for Dummies Frågor & Svar | 6 | 11-23-2001 11:31 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Utdataformat - jämfört med I / P-fil
Hej,
Jag har en fil som innehåller mer än 1 lakh skivor som följande: a. namn, id, stad, delstat, land, tfn (Förväntat I / P filformat) namn, id, stad, stat, land, tfn (Nuvarande I / P filformat) Jag vill uppnå följande uppgifter, en, ta bort de extra kommatecken i fältet Ort. b, Lägg till / ta bort extra sträng i ID-fältet (t.ex. om id är 5.001 Jag vill lägga till 0 i början, dvs 05.001 / i vissa fall, om id är 0.123 avlägsna 0 från början dvs 123. Vänligen råd. Tack och Regards, Vel |
|
||||
|
Använd SED för att göra det
Mål 1: För att ta bort flera kommatecken's som är tillsammans.
sed '1, $ S /,,/,/' sourcefile>> targetfile Fall 2: Jag förstår så här. Om id börjar med '0 'därefter eliminera det Om det börjar inte med "0" och sedan lägga till det. Scenariot är ganska svårt ... Låt oss säga att vi har en fil som denna katt test 1001, aa, bb, cc, dd 1001, aa, bb, cc, dd 1001, aa, bb, cc, dd 1001, aa, bb, cc, dd 011, aa, bb, cc, dd 011, aa, bb, cc, dd 011, aa, bb, cc, dd 011, aa, bb, cc, dd aa, bb, cc, dd aa, bb, cc, dd aa, bb, cc, dd aa, bb, cc, dd aa, bb, c, d och om jag kör like this sed 1, $ s / ^ [1-9] / 0 /, 1, $ s / ^ 0 / / "test Kontrollera output .. 001, aa, bb, cc, dd 001, aa, bb, cc, dd 001, aa, bb, cc, dd 001, aa, bb, cc, dd 11, aa, bb, cc, dd 11, aa, bb, cc, dd 11, aa, bb, cc, dd 11, aa, bb, cc, dd aa, bb, cc, dd aa, bb, cc, dd aa, bb, cc, dd aa, bb, cc, dd aa, bb, c, d men vi behöver didnt här .. Vi måste skilja mellan dem .. så använd detta kommando. sed 1, $ s / ^ [1-9] / -0 & /, 1, $ s / ^ 0 / / "test>> test1 katt test1 output \u003d\u003d\u003d\u003d\u003d\u003d -01.001, Aa, bb, cc, dd -01.001, Aa, bb, cc, dd -01.001, Aa, bb, cc, dd -01.001, Aa, bb, cc, dd 11, aa, bb, cc, dd 11, aa, bb, cc, dd 11, aa, bb, cc, dd 11, aa, bb, cc, dd aa, bb, cc,, dd aa, bb, cc,, dd aa, bb, cc,, dd aa, bb, cc,, dd aa, bb, c, d Nu u just att eliminera den "-" sed s /^-// g 'test1>> test2 katt test2 output \u003d\u003d\u003d\u003d\u003d 01.001, aa, bb, cc, dd 01.001, aa, bb, cc, dd 01.001, aa, bb, cc, dd 01.001, aa, bb, cc, dd 11, aa, bb, cc, dd 11, aa, bb, cc, dd 11, aa, bb, cc, dd 11, aa, bb, cc, dd aa, bb, cc, dd aa, bb, cc, dd aa, bb, cc, dd aa, bb, cc, dd aa, bb, c, d Hoppas jag har klargjort detta. Låt mig veta om något ..... |