The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Verwerken van een CSV-bestand janemary.a Hoog Niveau Programmering 1 05-11-2007 06:27
Hebben een shell script te controleren of een bestand te bestaan voor de verwerking van een ander bestand heprox Programmeren en Shell Scripting 3 11-14-2006 03:26
Bestand verwerking op perl garric Programmeren en Shell Scripting 2 09-01-2006 11:25 PM
verwerking lijn in dossier fablef00 Programmeren en Shell Scripting 8 01-23-2006 11:41
Verwerken van een tekst bestand TheCrunge UNIX voor Dummies Questions & Answers 1 11-09-2005 11:47

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-04-2007
manouche manouche is offline
Geregistreerde gebruiker
  
 

Join Datum: oktober 2007
Posts: 13
verwerken van een bestand met sed en awk

Hallo,

Ik heb wat is waarschijnlijk een eenvoudige taak in de tekst te manipuleren, maar ik kan het gewoon niet wikkel mijn hersenen eromheen.

Ik heb een tekst bestand dat er uit ziet iets als het volgende. Merk op dat sommige hebben midden initialen in het eerste veld en sommige niet.

john.r.smith: john.smith @ yahoo.com
george.w.bush: gwbush@whitehouse.gov
larry.doby: ldoby@hotmail.com
tom.t.hall: tom.t.hall @ nashville.com


Ik wil eindigen met een bestand, dat ziet er ongeveer als volgt uit:


john smith <tab> <tab> john.smith @ yahoo.com
george bush <tab> <tab> gwbush@whitehouse.gov
Larry <tab> doby <tab> ldoby@hotmail.com
tom <tab> hal <tab> tom.t.hall @ nashville.com

Dus, ik wil elke regel op te splitsen in twee velden gescheiden door een tabblad. Ik was in staat om heel gemakkelijk doen met awk en schreef het bestand.

awk-F ":" '(print $ 1 "\ t" $ 2)' invoerbestand> uitvoerbestand

Ik wil een einde maken aan de oorspronkelijke midden in veld 1, indien aanwezig. Ik kan je dat doen met sed, Maar hoe kan ik proces alleen veld 1 en veld 2 intact laat?

Uw suggesties zijn van harte welkom.
  #2 (permalink)  
Old 10-04-2007
reborg's Avatar
reborg reborg is offline Forum Staff  
Administrator
  
 

Join Date: Mar 2005
Locatie: Ierland
Berichten: 4.209
Een manier.
Code:
sed -e 's%\.[a-z]\.%.%' -e 's%\.%        %' -e 's%:%     %'
let op de grote ruimtes zijn letterlijke tabbladen, waarmee u kunt meestal krijgen door te typen ^ v <tab>
  #3 (permalink)  
Old 10-04-2007
devtakh devtakh is offline
Geregistreerde gebruiker
  
 

Join Datum: oktober 2007
Locatie: Bangalore
Posts: 514
er u gaan

te wijten aan de beperking van de sed interpreteren \ t als een tab .. en niet te willen tupe een TAB .. Ik gebruik awk .. gecombineerd met sed..

dit shud werk voor je ...

sed 's / \ (.* \) \. \ .* \ (.* \) \. \ .* \ (.* \) \: / \ 1 \. \ 3 \: / g' invoerbestand | nawk-F ':' '(sub (/ \. /, "\ t", $ 1); print $ 1, "\ t", $ 2)'

sante,
Devaraj Takhellambam
  #4 (permalink)  
Old 10-11-2007
veren springs is offline
Geregistreerde gebruiker
  
 

Join Datum: oktober 2007
Posten: 4
Kunt u uitleggen hoe dat werkt.

Bedankt
S
  #5 (permalink)  
Old 10-11-2007
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Locatie: Варна, България / Milano, Italia
Berichten: 2.847
Ervan uitgaande dat enkel-karakter midden initialen:

Code:
awk '{sub(/\..\.*/,"\t",$1)}1' FS=":" OFS="\t" filename
Gebruik nawk of / usr/xpg4/bin/awk op Solaris.
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 11:41 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0