On Tue, Oct 16, 2007 at 03:36:44PM +0300, Andrei Nestor wrote:
> > program exemplu
> >
> > #!/usr/bin/perl
> >
> > $a='aaaa,bbb,"ccccc,ccc",dddd,"eee,eeee"';
> >
> > $b = "$a,";
> > $c = 0;
> > $b =~ s!("?)(.*?)(\1),!$c++; print "P$c=$1$2$3\n", ""!ge;
> 
> Multumesc. Eu nu stiu deloc perl - cum as pot sa obtin $a din
> argumentul din linia de comanda? merge cu $1?
> Exista si o solutie fara perl (awk, de ex.)? Nu stiu daca o sa am perl
> pe masina respectiva.
> Thanks.
>
in test.txt ai aaaa,bbb,"ccccc,ccc",dddd,"eee,eeee"

sed -e 's/\("[^,]\+\),/\1;/g' -e 's/,/\t/g' -e 's/;/,/g' test.txt

sau 

--- start csv.sed --
s/\("[^,]\+\),/\1;/g
s/,/\t/g
s/;/,/g
--- end csv.sed ----

sed -f csv.sed test.txt

Obs.:
- am presupus ca ';' nu e folosit, il poti inlocui orice alt caracter
vrei sau chiar grup de caractere

PS: ceva imi spune ca asta e csv, vezi rfc4180, Daca e asa atunci
mai e o problema, :-), '"', ceva de genul: aaaa,"bbb""ccc",ddd

-- 
"We must be systematic, but we should keep our systems open."
  -- Alfred North Whitehead, Modes of Thought --


_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui