Visit Our UNIX and Linux User Community


Regex to remove subdirectory


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Regex to remove subdirectory
# 1  
Old 11-03-2009
Regex to remove subdirectory

I need to remove subdirectories that are empty and I've not done this before. First I am going through the files to remove old records. Then if the directory is empty I want to delete it. There are files in /direcotry/images/fs* - 0-9 and a-z The fs* directories need to stay, but any directories under the fs* directories that are empty need to be removed. Did I explain this ok?
So far I have this:
Code:
DIRECTORY=/directory/images
DATESTAMP="`date '+%m%d%y_%H:%M'`"
LOG_DIR=${TRAFFIC_IMAGE_HOME}/log
LOG=${LOG_DIR}/tiffsRemoved.${DATESTAMP}.txt
# this works fine -- 
for file in $( find $DIRECTORY -type f -name '*.tif' -mtime +15 )
do
  echo $file
  rm -rf $file
done | sort >> "$LOG"

# I can't figure out how to do this- 

for dir in $( find $DIRECTORY -type d -empty )
do
  echo $dir
  grep [0-9] $dir
#  rm -rf $file
done | sort > "$LOG"


Last edited by pludi; 11-03-2009 at 05:24 PM.. Reason: code tags, please...
# 2  
Old 11-03-2009
Assuming there are only subdirectories in $DIRECTORY that start with "fs", this should work:
Code:
find $DIRECTORY/fs*/* -type d -printf "'%p'\n"|sort -r |xargs rmdir 2>&-

# 3  
Old 11-04-2009
There are directories under, so this doesn't work. The directories look like this:
/directory/images/fsa/09005573FRA
/directory/images/fsa/09004364EVA

It is these 0900.... directories that need to be removed.
There a literally hundreds of these subdirectories that I need to remove. I guess my question wasn't clear enough. Can you still help me?
# 4  
Old 11-04-2009
Actually I think that should work. You seem to confirm that there are only subdirectories called fs* (e.g. fsa) in $DIRECTORY (/directory/images). These subdirectories must not be removed but the subdirectories inside these subdirectories do have to be removed if they are empty (i.e. contain no files or further subdirectories).

S.
# 5  
Old 11-04-2009
After review, I believe you are right. Thanks,

Previous Thread | Next Thread
Test Your Knowledge in Computers #972
Difficulty: Easy
The Linux kernel is written in assembly language.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sendmail K command regex: adding exclusion/negative lookahead to regex -a@MATCH

I'm trying to get some exclusions into our sendmail regular expression for the K command. The following configuration & regex works: LOCAL_CONFIG # Kcheckaddress regex -a@MATCH +<@+?\.++?\.(us|info|to|br|bid|cn|ru) LOCAL_RULESETS SLocal_check_mail # check address against various regex... (0 Replies)
Discussion started by: RobbieTheK
0 Replies

2. Shell Programming and Scripting

Perl, RegEx - Help me to understand the regex!

I am not a big expert in regex and have just little understanding of that language. Could you help me to understand the regular Perl expression: ^(?!if\b|else\b|while\b|)(?:+?\s+){1,6}(+\s*)\(*\) *?(?:^*;?+){0,10}\{ ------ This is regex to select functions from a C/C++ source and defined in... (2 Replies)
Discussion started by: alex_5161
2 Replies

3. Shell Programming and Scripting

Remove all files except the subdirectory(without pattern) in a directory

I used rm * and it deleted the files in the directory but gives and error message for unsuccessful subdirectory deletion. "rm: cannot remove 'DirectoryName': Is a directory" I dont want to explicitly get the above error. What are the modifications I have to do in the rm command? (3 Replies)
Discussion started by: duplicate
3 Replies

4. Shell Programming and Scripting

Need regex shell script to remove text from file

Hello I am trying to remove a line like <?php /*versio:2.05*/if (!defined('determinator')){ content goes here}?> Now i want to scan all... (6 Replies)
Discussion started by: devp
6 Replies

5. Shell Programming and Scripting

Perl regex to remove a segment in a line

Hello, ksh on Sun5.8 here. I have a pipe-delimited, variable length record file with sub-segments identified with a tilda that we receive from a source outside of our control. The records are huge, and Perl seems to be the only shell that can handle the huge lines. I am new to Perl, and am... (8 Replies)
Discussion started by: gary_w
8 Replies

6. Shell Programming and Scripting

find regex and remove #

hi , how do i remove # from a line where i found regex.. don't need to remove all the line.. only remove comment.. (3 Replies)
Discussion started by: Poki
3 Replies

7. Shell Programming and Scripting

Converting perl regex to sed regex

I am having trouble parsing rpm filenames in a shell script.. I found a snippet of perl code that will perform the task but I really don't have time to rewrite the entire script in perl. I cannot for the life of me convert this code into something sed-friendly: if ($rpm =~ /(*)-(*)-(*)\.(.*)/)... (1 Reply)
Discussion started by: suntzu
1 Replies

8. Shell Programming and Scripting

Using Sed to remove part of line with regex

Greetings everyone. Right now I am working on a script to be used during automated deployment of servers. What I have to do is remove localhost.localdomain and localhost6.localdomain6 from the /etc/hosts file. Simple, right? Except most of the examples I've found using sed want to delete the entire... (4 Replies)
Discussion started by: msarro
4 Replies

9. Shell Programming and Scripting

regex to remove commentaries and blanks

Hi all, I need to prune a var's content as follows: VAR='blah blah # seew seew' NEWVAR='blah blah' (without blanks) I need also to perform this change by using variable substitution within bash shell. I've tried it with the following subst: VAR2=${VAR/ \#*/} but the... (7 Replies)
Discussion started by: yomaya
7 Replies

10. Shell Programming and Scripting

regex to remove text before&&after comma chars

Hi, all: I have a question about "cleaning up" a huge file with regular expression(s) and sed: The init file goes like this: block1,blah-blah-blah-blah,numseries1,numseries2,numseries3,numseries4 block2,blah-blah-blah-blah-blah,numseries,numseries2,numseries3,numseries4 ...... (3 Replies)
Discussion started by: yomaya
3 Replies

Featured Tech Videos