Sponsored Content
Top Forums Shell Programming and Scripting Find, regular expression, anyway to simplify this find command? Post 302545102 by Sekullos on Saturday 6th of August 2011 11:13:46 AM
Old 08-06-2011
Tools Find, regular expression, anyway to simplify this find command?

Hello everyone,
first post here, trying to learn scripting on my own and this forum as been really helpful so far. I made few little scripts working great but I m facing some problems with RE.

I have a bunch of files in many subdirectories called *001.ext *002.ext OR simple *.ext or *01.ext *02.ext And I want to use the find command to only show files *.ext or *01.ext or *001.ext without showing *101.ext *98.ext etc

So the output I want should only show files named like this :

./maindir/blabladir/blabla.ext
./maindir/BlaBLoBdir/BlaBLoBli.ext
./maindir/blablabliblou/blablabliblou.01.ext
./maindir/blabladir/blabla.01.ext
./maindir/blablablouboum/blablablouboum.001.ext

etc

I ve tried many ways for this but I only managed to get it working through the following painful command :

Code:
find . -iname '*.ext' ! -regex '.*0[2-9].ext' ! -regex '.*[1-9][0-9].ext' ! -regex '.*0[0-9][2-9].ext' ! -regex '.*1[0-9][0-9].ext'

Is there anyway to simplify this? I m not used to regular expressions but I m sure there must be a cleaner, simpler command for this. I tried to find answers on different websites about how regular expressions work but in this case it's giving me a headache Smilie

For now I m using this command to process my result through "find -exec" it works great but kinda restrictive. Idealy when I ll manage to, I ll export the result from find in a file (find blabla > test.txt) and then make a loop processing each line from test.txt and assign different variables to line 1, then execute a specific command and then process line 2 until there is no more lines to process.

But right now I just want to simplify this find command if anyone got better idea?

Thx
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

using regular expression for directories in find command

Hi, I want to find the files available in a directory /var/user/*/*/data/. I tried using the command "find /var/user/ -path '*/*/data/ -name '*' -type f" it says find: 0652-017 -path is not a valid option and then i tried using "find /var/user/ -name '*/*/data/*' -type f" but its not... (3 Replies)
Discussion started by: vinothbabu12
3 Replies

2. UNIX for Dummies Questions & Answers

grep regular expression to find = not ==

I suspect this is commonly done, but haven't found the right combination of search terms to find the answer. I want to grep for lines in .cpp files that contain only 1 '=' sign in an if statement. e.g., if (a = b) -- find this if (a==b) -- don't find this My attempt: egrep... (7 Replies)
Discussion started by: offkilter
7 Replies

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

4. Shell Programming and Scripting

Regular expression to find the length of a field

Hi, in the cobol copy books is there any regular expressions to be used in awk to fetch the length of each columns? below mentioned are the examples. Copy Book Sample 01 tablename. 02 group header. 03 col1 s9(10)V99. 03 Col2 s9(10)V9(3). 03 Col3 XXXX 02... (7 Replies)
Discussion started by: ahmedwaseem2000
7 Replies

5. Shell Programming and Scripting

Find command - using regular expr

Hi, I would like to use find command to find file with a predefined extension for example find . modules/*.ksh *.lib I thought it's possible to use something like : find . modules/*. but it does not work. is there any other way? Thanks you (2 Replies)
Discussion started by: zam
2 Replies

6. Shell Programming and Scripting

Regular Expression in Find command [KSH]

Hello, I am trying to use regex wtih find command in KSH. For some reason it is not working as expected. Input: comm_000_abc_0102.c comm_000_abc.c 456_000_abc_1212.cpp 456_000_abc_.cpp Expected Output: comm_000_abc_0102.c kkm_000_abc_8888.cpp (Basically I want to find all... (6 Replies)
Discussion started by: vinay4889
6 Replies

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

8. UNIX for Dummies Questions & Answers

find command: names matching the expression

Hello all, I need to print directories using find command. The directories names contain date in the format YYYYMMDD or the name of directory is only the date format. I want print directories, which doesn't start with this date. E.g I have dirs like foo20120101 foo20120101foo 20120101foo... (1 Reply)
Discussion started by: satin1321
1 Replies

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

10. Shell Programming and Scripting

How to find regular expression for two files?

I have files: sum_<INPUT FILENAME>.YYYYMMDDhhmmss.csv and sum_details_<INPUT FILENAME>.YYYYMMDDhhmmss.csv I have no idea, what is input filename, but in the code I would like to catch them in case I process them in the loop above case statement for *.${Today}.*.txt... (3 Replies)
Discussion started by: digioleg54
3 Replies
File::Find::Rule::Procedural(3pm)			User Contributed Perl Documentation			 File::Find::Rule::Procedural(3pm)

NAME
File::Find::Rule::Procedural - File::Find::Rule's procedural interface SYNOPSIS
use File::Find::Rule; # find all .pm files, procedurally my @files = find(file => name => '*.pm', in => @INC); DESCRIPTION
In addition to the regular object-oriented interface, File::Find::Rule provides two subroutines for you to use. "find( @clauses )" "rule( @clauses )" "find" and "rule" can be used to invoke any methods available to the OO version. "rule" is a synonym for "find" Passing more than one value to a clause is done with an anonymous array: my $finder = find( name => [ '*.mp3', '*.ogg' ] ); "find" and "rule" both return a File::Find::Rule instance, unless one of the arguments is "in", in which case it returns a list of things that match the rule. my @files = find( name => [ '*.mp3', '*.ogg' ], in => $ENV{HOME} ); Please note that "in" will be the last clause evaluated, and so this code will search for mp3s regardless of size. my @files = find( name => '*.mp3', in => $ENV{HOME}, size => '<2k' ); ^ | Clause processing stopped here ------/ It is also possible to invert a single rule by prefixing it with "!" like so: # large files that aren't videos my @files = find( file => '!name' => [ '*.avi', '*.mov' ], size => '>20M', in => $ENV{HOME} ); AUTHOR
Richard Clamp <richardc@unixbeard.net> COPYRIGHT
Copyright (C) 2003 Richard Clamp. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
File::Find::Rule perl v5.12.4 2011-09-19 File::Find::Rule::Procedural(3pm)
All times are GMT -4. The time now is 05:11 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy