Newlines in heredoc
I have to write a shell script ( Solaris 8 s28_38shwp2 SPARC machine ) that will return the arguments that were passed along to it, but in reversed order, eg:
~$ ./reverse abc def ghi
ghi def abc
But since this is for my studies and we technically haven't seen much editors beyond vi/ex and ed, I can only use those. We need to solve this one using ex. Since ex is not a stream editor but a file editor, I figured I'd have to use some temporary file, and use ex on it. So here's my idea:
echo $@ > .reverse.tmp
ex - .reverse.tmp <<HERE
# invert the word order here: g/^/.m0
# strip newlines here
But the problem here is that no matter what I try, it just won't grab that newline. The words just get concatenated without a newline inbetween each. I don't see how I could avoid using heredoc since it also needs to save the changes, not just perform them. For that I tried 1,1s/ /^V^M/g/w, which also didn't seem to work.
Any help is appreciated, I've been trying to get this working for the past 2 hours and it's getting on my nerves.
Last edited by Voetsjoeba; 10-31-2006 at 09:14 AM.