On Mar 2, 2:24 pm, Luuk <L...@[EMAIL PROTECTED]
> wrote:
> Radu schreef:
>
>
>
> > On Mar 2, 12:34 pm, Luuk <L...@[EMAIL PROTECTED]
> wrote:
> >> Radu schreef:
>
> >>> Hi everybody,
> >>> Input file:
> >>> ID |First name |Last name |Address
|
> >>> Phone |
> >>>
--------------------------------------------------------------------------------------------------------------
> >>> <--10-->|<----15----->|<----20----->|
> >>> <--------30------------------------>|<---14------------->|
> >>>
--------------------------------------------------------------------------------------------------------------
> >>> 4568 |Michael |Moore |350 Kensington Rd. |
> >>> (514) 567-1234 |
> >>> 63542 |James |Joyce |220 London Blv. |
> >>> (450) 234-1456 |
> >>> I need to trim all blanks of each fixed-length field (notice there
are
> >>> blanks within each field that may be seen as field separators by awk
> >>> if not treated correctly). The output file I'm looking for (a CSV
> >>> file) would be like:
> >>> 4568,Michael,Moore, 350 Kensington Rd.,(514) 567-1234
> >>> 63542,James,Joyce,220 London Blv.,(450) 234-1456
> >>> Thanks,
> >>> Radu
> >> awk '{ gsub(/\|/,","); print ; gsub(" \+"," "); gsub(" ,",",");
print'
> >> inputfile
>
> >> --
> >> Luuk
>
> > Thanks Luuk,
>
> > All seems fine, only I did a "small" mistake.
> > The fields are not separated by "|" but by blanks.
>
> > So the record will be something like
>
> > 4568 Michael Moore 350 Kensington Rd. (514)
> > 567-1234
>
> > All I have is the fixed-length of each field. I guess I need to trim
> > all leading and trailing spaces (but not the inside ones, even if they
> > repeat on several positions) and separate the fields with ",".
>
> > Thanks again,
>
> > Radu
>
> awk 'BEGIN { OFS=","; }
> { id=substr($0,1,10);
> first=substr($0,11,15);
> last=substr($0,26,20);
> address=substr($0,46,30);
> phone=substr($0,76,14);
> gsub(" \+"," ",id);
> gsub(" \+"," ",first);
> gsub(" \+"," ",last);
> gsub(" \+"," ",address);
> gsub(" \+"," ",phone);
> print id, first, last, address, phone;
>
> }' inputfile
>
> Fields may still end with 1 space....
>
> --
> Luuk
Thanks a lot Luuke,
Excellent idea. It worked
Radu


|