Optimus -
I expected more maturity than this from people who use this board. The name of the forum I'm posting in is "Unix Newbies". I am new to Unix, and I have figured out a fair amount on my own. I am not asking you to fix my problems or do my work for me - if I do not find the answer on this board, there are plenty of other sites on the net I can use, as well as - shock! - books I can read. The answer will appear eventually. I thought I was being very confident and trusting by posting the code I had already figured out without anyone else's help. Sort of a meet you halfway there proposition.
But let me just say that both your posts are relatively useless to me. You tell me something about Korn shell - I counter and tell you I'm using C Shell. Being new, I can't distinguish yet between those two shells and what differences there are. I tell you I don't want to use the mv command by itself, and you proceed to give me the definition of the mv command. Well, of course I know that it renames files as well as moves them - that's why I included a variation of it in my regex. The regex I've built is supposed to do the same thing your forloop does. (There's more than one way to do things - Larry Wall, right?) But neither of your posts point out where my error is - you just tell me I don't know how to think yet. I would have to counter and say you don't know the answer, don't care to answer and are in general a lazy poster who thinks he's too cool to forego his ego for a minute and genuinely help. Are you some kind of whiz kid who knew everything from the start and never had to rely on help from anyone else ever? Should I nominate you for sainthood, because that would be a miracle. I for one know I need help, and that is why I wanted to ask someone else. A little push in the right direction will do wonders.
Alright, enough of this ranting. I will try to explain this one more time, and see what happens.
I have one large text file with, say, 8000 lines. I have split this file into 8 new text files with 1000 lines in each. The text files, generated from this split command:
split -1000 thelist.txt project
result in files named "projectaa", "projectab", etc. I want their names to be "projectaa.txt", "projectab.txt", etc. Why I want to make this change is not important to you. Accept that this is what I want and move on. So, knowing that, I have decided that I could use filename expansion and try to add the extension on the name using sed and a substitute command "s/". I know that a simplified substitution looks like s/oldtext/newtext/. I also know that by adding the mv command here: s/oldtext/mv newtext/ almost works. It works better when I add the '&' to it, which automatically uses the pattern I've tried to match in the beginning. Hence: s/oldtext/mv '&' / Finally, I try adding my text to be changed, by escaping the period in the command, because it also has special metacharacter meanings. Now my sed command looks like s/oldtext/mv '&' \.txt/
So, in a nutshell, that's what I'm thinking. I added the ls -d* command first to list all files in the folder and pipe those to this sed command. I then piped that result to "sh" so that the shell would execute the command for every item in the folder. This is the equivalent of your forloop. The -v on the end just lets me see a verbose method so I can verify its working correctly.
Given all this information, I might not know if I placed a space incorrectly in the sed command, or misquoted or didn't escape something properly. That's what I wanted help with. Some way to make a regex that correctly identifies all files with the name "project" and two miscellaneous characters afterwards. I thought that /^project[a-z][a-z]$/ pretty well isolated it. But since its not working, I'm not sure what to try.
I'm not complaining that this isn't working. I wouldn't spend all day working out variations and doing research so I could complain here. I've got better things to do with my time and so do you.
So be the bigger man and post a relevant clue about my specific sed command and benefit all the other newbies who want an example of how to do the same thing. If you know the answer, put up or shut up.