haeminish
haeminish

Reputation: 1078

regex for ls -ld

I have a directory consists of different types of files, including directory and individual files with similar names - so pattern must be very exact.

I need to use ls -ld to just to extract directories, and look for particular patterned directory. After getting this, I need to find out what that particular string_w_pattern is to store as variable.

I am running this in sh.

Known string is my_dir and my_prop_dir

/my_dir/string_w_pattern/my_prop_dir

string_w_pattern consists of 2-3 characters in capital letters with one number always comes on the second place.

I have tried following but getting more than two output since names for string_w_pattern are similar.

ls -ld /my_dir/[A-Z]*[A-Z0-9]\/my_prop_dir

Upvotes: 0

Views: 206

Answers (1)

yacc
yacc

Reputation: 3361

The shell uses glob expression syntax here, not regular expresssion. The * will expand like the regex .*. Also, drop the \ masking your /. Try this:

ls -ld /my_dir/[A-Z][A-Z][0-9]/my_prop_dir /my_dir/[A-Z][A-Z][A-Z][0-9]/my_prop_dir

To filter out the desired string from the result, use sed or cut.

Upvotes: 1

Related Questions