The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
Google UNIX.COM
Home Forums Register Rules & FAQ Members List Arcade Search Today's Posts Mark Forums Read


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!


Other UNIX.COM Threads You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
will this script in crontab effect SUN 9?? thepurple SUN Solaris 2 10-05-2007 01:31 AM
Temporarily disable effect of set -e in ksh ugeek Shell Programming and Scripting 1 03-28-2007 01:21 AM
How do properties effect script? Chiefos UNIX for Dummies Questions & Answers 1 06-21-2006 03:23 AM
Effect of Preemptive Kernel sriram.ec UNIX for Advanced & Expert Users 2 03-14-2006 09:43 PM
Recursive FTP aslamg UNIX for Dummies Questions & Answers 1 03-08-2001 12:27 AM

Closed Thread
 
Submit Tools LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 01-29-2003
sskb
 

Posts: n/a
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiReddit! Stumble this Post!Spurl this Post!
Unhappy recursive effect!!

I run the following command in some of my folders... and ended up with a huge mess!!

find . -type f -exec perl -e 's/blabla/zzzxxxx/gi' -p -i.bak {} \;

I had to kill the process and later when I checked with one of my folders..
ls

vaditerm.dt.bak
vaditerm.dt.bak.bak
vaditerm.dt.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak
vaditerm.dt.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak.bak


can someone throw light on how this happened?

Thanks,
sskb
(sorry if I wasted your time!!)
Forum Sponsor
  #2 (permalink)  
Old 01-29-2003
RTM's Avatar
RTM RTM is offline
Hog Hunter
 

Join Date: Apr 2002
Location: On my motorcycle
Posts: 3,039
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiReddit! Stumble this Post!Spurl this Post!
Only a guess since you didn't post the -e portion (what are you running there?).

It looks like the -p option may have caused the loop that gave the mutiple extensions. See Command Switches
  #3 (permalink)  
Old 01-30-2003
criglerj's Avatar
Registered User
 

Join Date: May 2002
Location: Atlanta
Posts: 129
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiReddit! Stumble this Post!Spurl this Post!
When you -exec the perl script, it's done on the first file it finds, vaditerm.dt when it finds it, not when it has read the entire directory. Then when it continues, the next file it finds is vaditerm.dt.bak, which your -exec then operates on. Next is vaditerm.dt.bak.bak ...

One solution is to pass off the results of find to xargs; xargs then runs your perl program. If you want it to do one file at a time, there's an option to xargs to tell it so.
find . -type f | xargs perl -i.bak ...

Another solution is to tell find to ignore *.bak:
find . -type f \! -name '*.bak' -exec perl ...

The xargs version (if you process more than one file at a time) uses fewer process slots and will run faster, which may be important if you have a lot of files and/or your files are long. The xargs version will overwrite existing .bak files if they are physically in the directory after the primary files. Combining the two solutions, i.e.,
find . -type f \! -name '*.bak' | xargs perl ...
will certainly overwrite existing .bak files.
Google UNIX.COM
Closed Thread



Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -7. The time now is 08:21 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008 The CEP Blog All Rights Reserved -Ad Management by RedTyger

Search Engine Optimization by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102