Mário Gamito wrote: > I have this file in the following format: > > tarta 16340309 marsanpin brigittamario@xxxxxx > lms doom123 Luis Miguel Sequeira lms@xxxxxx > jura teste Juraci jgweb@xxxxxxxxxx > jsilva t00lt0ya5 Jorge Silva jsilva@xxxxxxx > tchock mail#4829 tchock engDias@xxxxxx > reporterx noname Duarte Oliveira mtbf99@xxxxxxx > erkulix brunoverab4 Bruno Cruz > > First field is a username; > Second field is a password in clear text; > *Last field is the email; > The field between is the name. > > As you can see, some lines don't have the name, and names have an unknow > number of words. > Some lines don't have the e-mail. > > What i need is: > Substitute spaces for ":", *except* of course the spaces within the name. #!/usr/bin/sed -f s/^\([^ ]\+\) \+\([^ ]\+\) \+\(.\+\) \+\([^ @]\+@[^ @]\+\) *$/\1:\2:\3:\4/ s/^\([^ ]\+\) \+\([^ ]\+\) \+\([^ @]\+@[^ @]\+\) *$/\1:\2::\3/ s/^\([^ ]\+\) \+\([^ ]\+\) \+\(.\+\) *$/\1:\2:\3:/ -- Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx> - To unsubscribe from this list: send the line "unsubscribe linux-admin" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html