Sponsored Content
Top Forums Shell Programming and Scripting Bash - Find files excluding file patterns and subfolder patterns Post 303003829 by jim mcnamara on Thursday 21st of September 2017 07:13:58 AM
Old 09-21-2017
Maintaining something like that is hard - as you found out.
Consider splitting up the lists, make a file with the exclusion patterns, one pattern per line.
Call it exclusions. Changes in red.

Example:
Code:
find "$PATH1"  -type f \( -name "*" ! -iname "*~"  ! -iname "*.iso"  ! -iname "*.tar"  ! -iname "*.bz2"  ! -iname "*.gz"
  ! -iname "*.tgz"  ! -iname "*.7z"  ! -iname "*.sfx"  ! -iname "*.zip"  ! -iname "*.rpm" 
 ! -iname "*.gz.aa"  ! -iname "*.rpm"  ! -iname "*.pdf"  ! -iname "*.png"  ! -iname "*.jpg"  ! -iname "*.dll" 
 ! -iname "*.exe"  ! -iname "*.xsession*"  \) -a -type d \( -name "/etc/gconf/gconf.*" -o -name ".cache" 
-o -name ".Cache" -o -name ".mozilla" -o -name ".googleearth"  \) -prune  -o -print    | grep -v -f $HOME/exclusions > resultfile 

In order to test exclusions you can feed it output from a directory that had oddball file names
Code:
ls -a /path/to/somedir | grep  -f $HOME/exclusions   # note: no -v option

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

To find 3 patterns in a file

hy i have a requirement in which my script needs to find 3 patterns in a file and if any pattern is missing it should sent a mail Patterns Interval60min_Daily_readings$a.txt Interval_Daily_readings$a.txt Daily_readings$a.txt Basically i want to test for the above Patterns in the... (2 Replies)
Discussion started by: ali560045
2 Replies

2. Shell Programming and Scripting

Searching patterns in 1 file and deleting all lines with those patterns in 2nd file

Hi Gurus, I have a file say for ex. file1 which has 3500 lines in it which are different account numbers and another file (file2) which has 230000 lines in it. I want to read all the lines in file1 and delete all those lines from file2 which has that same pattern as in file1. I am not quite... (4 Replies)
Discussion started by: toms
4 Replies

3. Shell Programming and Scripting

Find files that do not match specific patterns

Hi all, I have been searching online to find the answer for getting a list of files that do not match certain criteria but have been unsuccessful. I have a directory that has many jpg files. What I need to do is get a list of the files that do not match both of the following patterns (I have... (21 Replies)
Discussion started by: nikos-koutax
21 Replies

4. Shell Programming and Scripting

Excluding patterns from a list

I have the following code that takes the command line arguments. However I want to remove from the command line list the user options. For example, removing --quiet --shift=3 sort=4/5/6 I have written the following code to take care of this situation. set strLst = `echo $argv | tr '... (3 Replies)
Discussion started by: kristinu
3 Replies

5. UNIX for Dummies Questions & Answers

Find diff between two patterns in two files and append

Hi, I'm a newbie at programming in Unix, and I seem to have a task that is greater than I can handle. Trying to learn awk by the way (but in the end, i just need something that works). My goal is to compare two files and output the difference between the two. I've been reading, and I think I... (5 Replies)
Discussion started by: legato22
5 Replies

6. Shell Programming and Scripting

Find matched patterns in multiple files

Hi, I need help to find matched patterns in 30 files residing in a folder simultaneously. All these files only contain 1 column. For example, File1 Gr_1 st-e34ss-11dd bt-wwd-fewq pt-wq02-ddpk pw-xsw17-aqpp Gr_2 srq-wy09-yyd9 sqq-fdfs-ffs9 Gr_3 etas-qqa-dfw ddw-ppls-qqw... (10 Replies)
Discussion started by: redse171
10 Replies

7. Shell Programming and Scripting

Find matched patterns in a column of 2 files with different size and merge them

Hi, i have input files like below:- input1 Name Seq_ID NewID Scores MT1 A0QZX3 1.65 277.4 IVO A0QZX3 1.65 244.5 HPO A0QZX3 1.65 240.5 RgP A0Q3PP 5.32 241.0 GX1 LPSZ3S 96.1 216.9 MEL LPSS3X 4.23 204.1 LDD LPSS3X 4.23 100.2 input2 Fac AddName NewID ... (9 Replies)
Discussion started by: redse171
9 Replies

8. Shell Programming and Scripting

Find matched patterns and print them with other patterns not the whole line

Hi, I am trying to extract some patterns from a line. The input file is space delimited and i could not use column to get value after "IN" or "OUT" patterns as there could be multiple white spaces before the next digits that i need to print in the output file . I need to print 3 patterns in a... (3 Replies)
Discussion started by: redse171
3 Replies

9. Shell Programming and Scripting

Help needed in excluding certain word patterns

Hi, I need help with following. I need to exclude words that match following patterns a. more than length 4 (example SBRAP) b. contains mixture uppercase and lower case regardless of the length (example GSpD) File contains COFpC MCHX SP SNFCA GEH SBRAP DGICA JPMpE WFCpP GSpD AXL... (5 Replies)
Discussion started by: jakSun8
5 Replies

10. Shell Programming and Scripting

Find files not matching multiple patterns and then delete anything older than 10 days

Hi, I have multiple files in my log folder. e.g: a_m1.log b_1.log c_1.log d_1.log b_2.log c_2.log d_2.log e_m1.log a_m2.log e_m2.log I need to keep latest 10 instances of each file. I can write multiple find commands but looking if it is possible in one line. m file are monthly... (4 Replies)
Discussion started by: wahi80
4 Replies
funopen(3)                                                      SAORD Documentation                                                     funopen(3)

NAME
FunOpen - open a Funtools data file SYNOPSIS
#include <funtools.h> Fun FunOpen(char *name, char *mode, Fun ref); DESCRIPTION
The FunOpen() routine opens a Funtools data file for reading or appending, or creates a new FITS file for writing. The name argument speci- fies the name of the Funtools data file to open. You can use IRAF-style bracket notation to specify Funtools Files, Extensions, and Fil- ters. A separate call should be made each time a different FITS extension is accessed: Fun fun; char *iname; ... if( !(fun = FunOpen(iname, "r", NULL)) ){ fprintf(stderr, "could not FunOpen input file: %s ", iname); exit(1); } If mode is "r", the file is opened for reading, and processing is set up to begin at the specified extension. For reading, name can be stdin, in which case the standard input is read. If mode is "w", the file is created if it does not exist, or opened and truncated for writing if it does exist. Processing starts at the beginning of the file. The name can be stdout, in which case the standard output is readied for processing. If mode is "a", the file is created if it does not exist, or opened if it does exist. Processing starts at the end of the file. The name can be stdout, in which case the standard output is readied for processing. When a Funtools file is opened for writing or appending, a previously opened Funtools reference handle can be specified as the third argu- ment. This handle typically is associated with the input Funtools file that will be used to generate the data for the output data. When a reference file is specified in this way, the output file will inherit the (extension) header parameters from the input file: Fun fun, fun2; ... /* open input file */ if( !(fun = FunOpen(argv[1], "r", NULL)) ) gerror(stderr, "could not FunOpen input file: %s ", argv[1]); /* open the output FITS image, inheriting params from input */ if( !(fun2 = FunOpen(argv[2], "w", fun)) ) gerror(stderr, "could not FunOpen output file: %s ", argv[2]); Thus, in the above example, the output FITS binary table file will inherit all of the parameters associated with the input binary table extension. A file opened for writing with a Funtools reference handle also inherits the selected columns (i.e. those columns chosen for processing using the FunColumnSelect() routine) from the reference file as its default columns. This makes it easy to open an output file in such a way that the columns written to the output file are the same as the columns read in the input file. Of course, column selection can easily be tailored using the FunColumnSelect() routine. In particular, it is easy to merge user-defined columns with the input columns to gener- ate a new file. See the evmerge for a complete example. In addition, when a Funtools reference handle is supplied in a FunOpen() call, it is possible also to specify that all other extensions from the reference file (other than the input extension being processed) should be copied from the reference file to the output file. This is useful, for example, in a case where you are processing a FITS binary table or image and you want to copy all of the other extensions to the output file as well. Copy of other extensions is controlled by adding a "C" or "c" to the mode string of the FunOpen() call of the input reference file. If "C" is specified, then other extensions are always copied (i.e., copy is forced by the application). If "c" is used, then other extensions are copied if the user requests copying by adding a plus sign "+" to the extension name in the bracket specifi- cation. For example, the funtable program utilizes "c" mode, giving users the option of copying all other extensions: /* open input file -- allow user copy of other extensions */ if( !(fun = FunOpen(argv[1], "rc", NULL)) ) gerror(stderr, "could not FunOpen input file: %s ", argv[1]); /* open the output FITS image, inheriting params from input */ if( !(fun2 = FunOpen(argv[2], "w", fun)) ) gerror(stderr, "could not FunOpen output file: %s ", argv[2]); Thus, funtable supports either of these command lines: # copy only the EVENTS extension csh> funtable "test.ev[EVENTS,circle(512,512,10)]" foo.ev # copy ALL extensions csh> funtable "test.ev[EVENTS+,circle(512,512,10)]" foo.ev Use of a Funtools reference handle implies that the input file is opened before the output file. However, it is important to note that if copy mode ("c" or "C") is specified for the input file, the actual input file open is delayed until just after the output file is opened, since the copy of prior extensions to the output file takes place while Funtools is seeking to the specified input extension. This implies that the output file should be opened before any I/O is done on the input file or else the copy will fail. Note also that the copy of sub- sequent extension will be handled automatically by FunClose() if the output file is closed before the input file. Alternatively, it can be done explicitly by FunFlush(), but again, this assumes that the input file still is open. Upon success FunOpen() returns a Fun handle that is used in subsequent Funtools calls. On error, NULL is returned. SEE ALSO
See funtools(7) for a list of Funtools help pages version 1.4.2 January 2, 2008 funopen(3)
All times are GMT -4. The time now is 01:28 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy