How to compare a file name with a regular expression !!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to compare a file name with a regular expression !!
# 1  
Old 09-26-2011
Question How to compare a file name with a regular expression !!

Hi,

I need to compare file names in a folder with several strings(which are in regular expression format):

For example:
there is a file "objectMyHistoryBook" and there are several strings to compare this file name with:

objectMyMaths*, objectMyEnglish*, objectMyHistory*, objectMyChemistry* etc

so I tried this:
file=objectMyHistoryBook
#there are several files in the concerned folder so assigning each name in 'file'
if [ [ $file="objectMyMaths*"] -o [ $file="objectMyEnglish*" ] -o [ $file="objectMyHistory*"] -o [ $file="objectMyChemistry] ];
then
{file name matches one of the string so do this }
fi

But this is not working. Need help..!!
# 2  
Old 09-26-2011
Put all the strings in one file ( pattern.txt )

Code:
 
$cat pattern.txt
objectMyMaths
objectMyEnglish
objectMyHistory
objectMyChemistry
 
$while read pattern
do
   ls -lrt $pattern* > /dev/null && echo "File found for $pattern" || echo "file not found for this $pattern"
done < pattern.txt

# 3  
Old 09-27-2011
Depending on your shell you could try one of these:

Code:
if [[ "$file" = objectMyMaths* ]] ||
   [[ "$file" = objectMyEnglish* ]] ||
   [[ "$file" = objectMyHistory* ]] ||
   [[ "$file" = objectMyChemistry* ]]
then
 echo {file name matches one of the string so do this }
fi

Code:
case "$file" in
    objectMyMaths*|objectMyEnglish*|objectMyHistory*|objectMyChemistry*)
        echo {file name matches one of the string so do this }
    ;;
    *)
        echo "No match"
    ;;
esac

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

I need help to compare file name with regular expression and do something with file

#!/bin/sh Today=date '+%Y%m%d' for file in `ls *.csv *txt` do echo "Start woprking with ${file}" if ; then do something elif ; then do something else echo "Unkniowned file name" ... (6 Replies)
Discussion started by: digioleg54
6 Replies

2. Shell Programming and Scripting

Grep with Regular expression now working on file directories

Hello Everyone, I have a file sam1 with the below content SYSYSID;MANDT;/SIE/AD_Z0M_INDX;/SIE/AD_Z0M_KEY1 echo $Regex \bSYSYSID\b|\bMANDT\b|\b/SIE/AD_Z0M_INDX\b|\b/SIE/AD_Z0M_KEY1\b cat sam1 | grep -Eo $Regex I expect the result as SYSYSID MANDT /SIE/AD_Z0M_INDX /SIE/AD_Z0M_KEY1... (4 Replies)
Discussion started by: sam99
4 Replies

3. UNIX for Dummies Questions & Answers

How to using Regular expression to find file.?

Hi Gurus, I need to identify the file with below format: ABC20110101.DAT ABCD2011010103.DAT If I use ABC*\.DAT, it get two file. I want to get file after "ABC' then number, the ".DAT". I tried ABC* but it doesn't work. Thanks in advance. (9 Replies)
Discussion started by: ken6503
9 Replies

4. Shell Programming and Scripting

How to find out whether a file exists with the help of regular expression?

Hi all I have a list of file names in array. But this file names are not exact. so i want to search whether a file exists or not using regular expression. code snippet: if ; then echo "File exists" else echo "File does not exits" fi over here "*EQST*" should be treated as a regular... (4 Replies)
Discussion started by: Ganesh_more
4 Replies

5. UNIX for Advanced & Expert Users

sed: -e expression #1, char 0: no previous regular expression

Hello All, I'm trying to extract the lines between two consecutive elements of an array from a file. My array looks like: problem_arr=(PRS111 PRS213 PRS234) j=0 while } ] do k=`expr $j + 1` sed -n "/${problem_arr}/,/${problem_arr}/p" problemid.txt ---some operation goes... (11 Replies)
Discussion started by: InduInduIndu
11 Replies

6. UNIX for Dummies Questions & Answers

Compare files with regular expression

Readers, Reading a previous post about comparing files using awk ('awk-compare-2-columns-2-files-output-whole-line', https://www.unix.com/shell-programming-scripting/168432-awk-compare-2-columns-2-files-output-whole-line.html), it is possible to adjust this, so that regular expression can be used... (8 Replies)
Discussion started by: linuxr
8 Replies

7. Programming

Perl: How to read from a file, do regular expression and then replace the found regular expression

Hi all, How am I read a file, find the match regular expression and overwrite to the same files. open DESTINATION_FILE, "<tmptravl.dat" or die "tmptravl.dat"; open NEW_DESTINATION_FILE, ">new_tmptravl.dat" or die "new_tmptravl.dat"; while (<DESTINATION_FILE>) { # print... (1 Reply)
Discussion started by: jessy83
1 Replies

8. Shell Programming and Scripting

Using grep and regular expression to find class references in a c++ file

I'm trying to math all class references in a C++ file using grep with regular expression. I'm trying to know if a specific include is usuless or not, so I have to know if there is a refence in cpp. I wrote this RE that searches for a reference from class ABCZ, but unfortunately it isn't working... (0 Replies)
Discussion started by: passerby
0 Replies

9. Shell Programming and Scripting

AWK - compare $0 to regular expression + variable

Hi, I have this script: awk -v va=45 '$0~va{print}' flo2 That returns: "4526745 1234 " (this is the only line of the file "flo2". However, I would like to get "va" to match the begining of the line, so that is "va" is different than 45 (eg. 67, 12 ...) I would not have any output. That... (3 Replies)
Discussion started by: jolecanard
3 Replies

10. Shell Programming and Scripting

compare variable against regular expression?

is it possible? if so, how? i want to check a variable whether is it a number or letter in an if-else statement (6 Replies)
Discussion started by: finalight
6 Replies
Login or Register to Ask a Question