![]() |
|
|
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 |
| Behöver ersätter för sed | dbsurf | Shell-programmering och Skript | 0 | 01-25-2008 06:47 |
| Vad ersätter | rajx | UNIX for Dummies Frågor & Svar | 2 | 05-22-2007 10:19 |
| String ersätter med Perl | Lindarella | Shell-programmering och Skript | 4 | 09-29-2006 03:05 |
| Ersätter använda sed | handak9 | UNIX for Dummies Frågor & Svar | 5 | 07-13-2004 12:28 |
| CPU byte. hjälp | IMPTRUE | UNIX for Dummies Frågor & Svar | 3 | 07-25-2003 09:40 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Byte av sed med perl
Hej via nedanstående cmd jag identifiera wheether sista tecknet i varje rad i tusentals filer som semikolon eller not.If sista tecknet är semikolon jag bort semikolon. Om sista tecknet är inte semikolon då jag lägger till nästa rad till nuvarande linjen.
Till exempel min indatafil består av ABC | FGH | HJK | JKK; BHJ | AAA | BBB | L NNNN | JJJJ | LLLL; JJJJJJ; ut som filen består av ABC | FGH | HJK | JKK BHJ | AAA | BBB | L NNNN | JJJJ | LLLL JJJJJ Jag uppnå dessa krav med sed enligt nedan sed -e: en-e'/;$/! N, s / \ n / /; ta '-e' s /;$//' fil men jag har tusentals filer i en katalog dess konsumerar mer och mer tid. Kan vem som helst ersätta ovannämnda krav perl med xargs like xargs perl alternativet cn någon föreslå det enklaste sättet utan Looping |
|
||||
|
Hej Jim,
Ovanstående kod fungerar med sed men det förbrukar för mycket tid .. kan du ge samma med perl syntax. Funktionaliteten är det att identifiera sista tecknet på varje rad i alla filer som semicolon.if det grundar eftersom semikolon det att ersätta med mellanslag annars måste lägga nästa linje med nuvarande. |