extract string from filename
Zhao Peng
greenmt at gmail.com
Fri Jan 13 11:41:01 EST 2006
Kevin,
Thank you very much! I really appreciate it.
I like your "find" approach, it's simple and easy to understand.
I'll also try to understand your perl approach, when I got time to start
learning it. (Hopefully it won't be un-fulfilled forever)
I have one more question:
Is it possible to number the extracted string2?
Say, the output file contains the following list of extracted string2:
st
region
local
Any idea about what command to use to number the list to make it look
like below:
1 st
2 region
3 local
Again, thank you for your help and time!
Zhao
Kevin D. Clark wrote:
> Zhao Peng writes:
>
>
>> I'm back, with another "extract string" question. //grin
>>
>
>
> find FOLDERNAME -name \*sas7bdat -print | sed 's/.*\///' | cut -d _ -f 2 | sort -u > somefile.txt
>
> or
>
> perl -MFile::Find -e 'find(sub{$string2 = (split /_/)[2]; $seen{$string2}++; }, @ARGV); map { print "$_\n"; } keys(%seen)' FOLDERNAME
>
> (which looks more readable as:
>
> perl -MFile::Find -e 'find(sub{ $string2 = (split /_/)[2];
> $seen{$string2}++;
> }, @ARGV);
>
> map { print "$_\n"; } keys(%seen)' \
> FOLDERNAME > somefile.txt
>
> )
>
> Either of which solves the problem that you describe. Actually, they
> solve more than the problem that you describe, since it wasn't
> apparent to me if you had any subdirectories here, but this is solved too)
>
> (substitute FOLDERNAME with your directory's name)
>
>
> Honestly, the first solution I present is the way I would have solved
> this problem myself. Very fast this way.
>
> Regards,
>
> --kevin
>
More information about the gnhlug-discuss
mailing list