Regular Expression on Directory Contents


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Regular Expression on Directory Contents
# 1  
Old 02-24-2009
Regular Expression on Directory Contents

This should be an easy question for you gurus. Smilie

How can I create a regular expression to match all files in the current directory that have only one period in their file name, and also not contain the string "abc" before the period?

It would match:
foo.txt
foobar.log

It would not match:
foo.bar.txt
abc.txt

I'm going to use this inside an if-statement in a ksh script, if that makes any difference.
# 2  
Old 02-24-2009
Code:
ls | awk -F\. 'NF==2'

Regards
# 3  
Old 02-24-2009
Quote:
Originally Posted by Franklin52
Code:
ls | awk -F\. 'NF==2'


That doesn't remove filenames containing abc..

(And there's no need for ls.)

Code:
printf "%s\n" * | awk -F\. 'NF==2 && !/abc\./'

That will not pick up filenames that begin with a dot.
# 4  
Old 02-24-2009
Quote:
Originally Posted by cfajohnson

That doesn't remove filenames containing abc..

Oops, I missed that.

Regards
# 5  
Old 02-24-2009
That works wonderfully, thanks! In case anyone cares, here's the final code (with private details omitted), once put inside a for-loop and if-statement. Maybe not the best way, but it works...

Code:
for file in *; do
  if [[ `echo $file | awk -F\. 'NF==2 && !/abc\./' | wc -l` -ge 1 ]]; then
    #do something
  fi
done

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. 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

2. 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

3. Shell Programming and Scripting

Integer expression expected: with regular expression

CA_RELEASE has a value of 6. I need to check if that this is a numeric value. if not error. source $CA_VERSION_DATA if * ] then echo "CA_RELESE $CA_RELEASE is invalid" exit -1 fi + source /etc/ncgl/ca_version_data ++ CA_PRODUCT_ID=samxts ++ CA_RELEASE=6 ++ CA_WEEK_NO=7 ++... (3 Replies)
Discussion started by: ketkee1985
3 Replies

4. Shell Programming and Scripting

How to apply a regular expression in all the files in a directory

I have say 100 text files (with .txt extension) in a directory. An example of the content in the file is given below "NAME" "cgd1_200" "cgd1_3210" "cgd1_560" "cgd2_2760" "cgd2_290" "cgd3_3210" "cgd3_3310" "cgd3_660" "cgd5_2130" "cgd5_4080" "cgd6_3690" "cgd6_4480" "cgd8_1540"... (2 Replies)
Discussion started by: Lucky Ali
2 Replies

5. Linux

Regular expression to extract "y" from "abc/x.y.z" .... i need regular expression

Regular expression to extract "y" from "abc/x.y.z" (2 Replies)
Discussion started by: rag84dec
2 Replies

6. Shell Programming and Scripting

regular expression

Hello All! I have a file thats something like this: ( a grep output) /path/of/file/filename.abc.xyz.pqr:! Commented text /path/of/file/filename.abc.xyz: ! More Commented text I need to grep out those line from this file whose filename has ".abc" in the filename (anywhere in filename)... (3 Replies)
Discussion started by: ag79
3 Replies

7. UNIX for Dummies Questions & Answers

regular expression..help!!

need regular expression matches: abc11_efg11_123.xml abc11_123.xml Thank you Andy (1 Reply)
Discussion started by: andy2000
1 Replies

8. UNIX for Dummies Questions & Answers

Regular Expression

OK, this ones been bugging me.... 9DH21AQAE~56081~109~12/18/2003~ ~B ~ ~ I want to remove all but 1 of the trailing spaces after the last ~, there may be 2 or more trailing spaces tried s/\~ +/\~ /g but no go thanks (5 Replies)
Discussion started by: edog
5 Replies

9. Shell Programming and Scripting

Regular Expression + Aritmetical Expression

Is it possible to combine a regular expression with a aritmetical expression? For example, taking a 8-numbers caracter sequece and casting each output of a grep, comparing to a constant. THX! (2 Replies)
Discussion started by: Z0mby
2 Replies
Login or Register to Ask a Question