sed regexp mystery

J

John K. Humkey

Ok, it's sed not perl, but it's primarily a regexp question that I've
encountered (and failed to understand) before. . .

#
# When trying to convert a variable number
# of spaces separating fields, to fields
# separated by single commas, if your "input"
# file looks like the following lines. . .
#
#alpha bravo charlie delta echo fox
#alpha bravo charlie delta echo fox
#alpha bravo charlie delta echo fox
#
# and your're trying to convert it to the following. . .
#
#alpha,bravo,charlie,delta,echo,fox
#alpha,bravo,charlie,delta,echo,fox
#alpha,bravo,charlie,delta,echo,fox
#
# Why don't any of the next 5 lines work?
cat input | sed -e "s/ +/,/g"
cat input | sed -e "s/ */,/g"
cat input | sed -e "s/ {1,10}/,/g"
cat input | sed -e "s/[ ]*/,/g"
cat input | sed -e "s/[ ]+/,/g"
#
# Because the above 5 lines all look like
# valid methods of substituting one comma
# for one or more spaces.
#
# And yet, the next line DOES work.
cat input | sed -e "s/[ ] */,/g"
#

I've also tried the g/before/s//after/g type lines with even less success.

Thoughts?

jkh
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,904
Latest member
HealthyVisionsCBDPrice

Latest Threads

Top