ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
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.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
What would be the correct syntax for awk or sed to match this: [0-9][0-9]???200[0-9] and just pipe it to "sort -u" so that it can be written to the /tmp/_1.txt file?
Distribution: Debian testing 64bit at home, EL5 32/64bit at work.
Posts: 196
Original Poster
Rep:
I put the "1" flag (that's a number one ... not the letter L) just to make sure there is one entry per line. The grep is to make sure that what I get actually does start with a number ... during my testing I got one entry that was an empty space and another that was a strange character.
Distribution: Solaris 11.4, Oracle Linux, Mint, Debian/WSL
Posts: 9,789
Rep:
The "-1" (one file per line option) is unnecessary, as when ls output is not a terminal, but redirected to a file or piped to another command, this is the default behaviour.
Also, I don't understand why you use 16-24 vs 12-20 which match for me the path you give.
Finally, the 'grep -e "^[0-9]"' still seems to me redundant, as the files already start by a number anyway. I would be curious to see how did you got an empty space or "strange characters", perhaps have you directories matching the ls pattern ?
#/bin/sh
#written in notepad with no way of testing this - user beware!
#ooooo... command line options!
#I suppose you could put the destination dir in as a command line option too...
sourceDir=$1
find $sourceDir -type f -iname '*.tar.gz' > /destination/dir/fileList.lst
eachList=`cat fileList.lst | tr "\n" " "`
for each in $eachList do ;
cp $each /destination/dir/ ;
echo `basename $each | cut -c 1-9` >> /destination/dir/baseList.lst ;
done
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.