The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
.
google unix.com



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

More UNIX and Linux Forum Topics 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 04:31 AM
Temporarily disable effect of set -e in ksh ugeek Shell Programming and Scripting 1 03-28-2007 04:21 AM
How do properties effect script? Chiefos UNIX for Dummies Questions & Answers 1 06-21-2006 06:23 AM
Effect of Preemptive Kernel sriram.ec UNIX for Advanced & Expert Users 2 03-15-2006 01:43 AM
Recursive FTP aslamg UNIX for Dummies Questions & Answers 1 03-08-2001 04:27 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 01-29-2003
sskb
Guest
  
 

Posts: n/a
Bits: 0 [Banking]
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!!)
  #2 (permalink)  
Old 01-29-2003
RTM's Avatar
RTM RTM is offline Forum Advisor  
Hog Hunter
  
 

Join Date: Apr 2002
Location: On my motorcycle
Posts: 3,039
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
criglerj criglerj is offline
Registered User
  
 

Join Date: May 2002
Location: Atlanta
Posts: 129
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.
Sponsored Links
Closed Thread

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

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

BB 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 -4. The time now is 04:40 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language translation by Google.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0