Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
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.
Is this something you have been set for homework?
Apparently it is since he stated in his OP. Anyway. There is an example in this forum, say within the past 6 months, where somebody had to do the same but without using "rev"...