The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Fjernelse af kommaer inden semikolon i en flad fil r_t_1601 Shell Programmering og Scripting 10 06-16-2009 07:52 AM
fjerne semikolon bruger sed i AIX - presserende aixjadoo UNIX for dummyer Spørgsmål & svar 9 06-16-2008 02:41 PM
Fjernelse af trailer fra en flad fil! kumarsaravana_s UNIX for dummyer Spørgsmål & svar 12 06-24-2007 04:53 AM
Padding nuller efter fjerne kommaer i fil pranag21 HP-UX 1 11-09-2005 10:22 PM
fjerne kommaer fra tekstfil hcclnoodles UNIX for dummyer Spørgsmål & svar 6 03-26-2003 04:43 PM

Reply
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øg denne tråd Karakter: Thread Rating: 2 votes, 4.50 average. Display Modes
  #1 (permalink)  
Old 06-16-2009
r_t_1601 r_t_1601 is offline
Registreret Bruger
  
 

Join Date: Jun 2009
Stillinger: 25
Fjernelse af kommaer inden semikolon i en flad fil

Jeg får en flad fil (kommasepareret) med komma i mellem dobbelte anførselstegn i nogen af kilden felter. Jeg har brug for at fjerne kommaet i dobbelte anførselstegn og behandle den fil, derefter

felterne i filen
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
col1, col2, col3, col4

input kan være nogen af de followng
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
Rohan, rahul, kunal, "sw, ati"
Rohan, rahul "kun, al", Swati
Rohan, "RAH, ul", kunal, Swati
"ro, han", rahul, kunal, Swati

produktionen skal
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
Rohan, rahul, kunal, Swati

hvordan kan vi nå dette ..
thanks in advance
  #2 (permalink)  
Old 06-16-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Sep 2006
Indlæg: 2.554
hvis du har Python, kan du bruge sin csv modul
Code:
#!/usr/bin/env python
import csv
filename = "file"
reader = csv.reader(open(filename),delimiter=",")
for row in reader: 
    for n,item in enumerate(row):
        row[n]=row[n].replace(",","")
    print ','.join(row)
output
Code:
# more file
rohan,rahul,kunal,"sw,ati"
rohan,rahul,"kun,al",swati
rohan,"rah,ul",kunal,swati
"ro,han",rahul,kunal,swati

# ./test.py
rohan,rahul,kunal,swati
rohan,rahul,kunal,swati
rohan,rahul,kunal,swati
rohan,rahul,kunal,swati
  #3 (permalink)  
Old 06-16-2009
ahmad.diab's Avatar
ahmad.diab ahmad.diab is offline
Registreret Bruger
  
 

Join Date: May 2008
Beliggenhed: Amman Jordan i MEA
Stillinger: 231
vi allerede har gjort dette ved hjælp af sed inden for 2 timer !!!!!

Code:
sed 's/\(.*\),\(.*\)/\1\2/g'  file.txt
BR
  #4 (permalink)  
Old 06-16-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Sep 2006
Indlæg: 2.554
Citat:
Oprindeligt Indsendt af ahmad.diab View Post
vi allerede har gjort dette ved hjælp af sed inden for 2 timer !!!!!

Code:
sed 's/\(.*\),\(.*\)/\1\2/g'  file.txt
BR
sine ikke så enkel.
  #5 (permalink)  
Old 06-17-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Jun 2007
Location: Beijing Kina
Indlæg: 1.088
Kan forsøge nedenfor perl.

Code:
while(<DATA>){
	s/,(?=[^,"]+")//;
	s/"//g;
	print;
}
__DATA__
rohan,rahul,kunal,"sw,ati"
rohan,rahul,"kun,al",swati
rohan,"rahul",kunal,"sw,ati"
"ro,han",rahul,kunal,swati
  #6 (permalink)  
Old 06-16-2009
r_t_1601 r_t_1601 is offline
Registreret Bruger
  
 

Join Date: Jun 2009
Stillinger: 25
kan du være venlig at fortælle relevante unix-kode
  #7 (permalink)  
Old 06-17-2009
balaji_red83 balaji_red83 is offline
Registreret Bruger
  
 

Join Date: Jun 2009
Stillinger: 7
Prøv nedenstående kode. Dette fungerer selvom du har komma mere end én gang i en linje.

Code:
 
use strict;
use warnings;
while(<DATA>) {
        s/\"(.*?)\,(.*?)\"/$1.$2/ge;
        print;
}
__END__
"ro,han",rahul,kunal,"sw,ati"
rohan,"r,ahul","kun,al",swati
rohan,"rah,ul",kunal,swati
"ro,han",rahul,kunal,"s,wati"

Sidst redigeret af balaji_red83; 06-17-2009 på 07:09 AM..
Reply

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 10:40 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0