TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TCLUG:18790] quick way to strip spaces...



perl -e 'opendir D, "."; for(readdir D) {$x=$_; s/[(,)]/_/g; rename $x,
$_;}'

That did the trick perfectly!!  (I also had some commas to remove, so I
added that bit in as well...)
 
> From: Troy Johnson <john1536@tc.umn.edu>
> Reply-To: tclug-list@mn-linux.org
> Date: Wed, 14 Jun 2000 17:05:17 -0500
> To: tclug-list@mn-linux.org
> Subject: Re: [TCLUG:18790] quick way to strip spaces...
> 
> Brian Ackermann wrote:
>>> From: "Eric Hillman" <ehillman@cccu.com>
>>> 
>>> perl -e 'opendir D, "."; for(readdir D) {$x=$_; s/\s+/_/g; rename $x, $_;}'
>> 
>> However, I'm wondering if you could explain this bit for me...
>> {$x=$_; s/\s+/_/g; rename $x, $_;}
>> I also am going to need to strip out '(' and ')', and I'm not seeing how to
>> do that.
> 
> {$x=$_; s/\s+/_/g; s/[()]//g; rename $x, $_;}
> 
> The semicolons (';') here separate single statements.
> 
> The '$_' variable is a special default variable for loops. When 'readdir
> D' produces a list of files names, the 'for' loop sends them one at a
> time throught the loop and assigns the file name to the $_ variable.
> '$x' here is just a variable to store the old file name for use in the
> 'rename' function.
> 
> The regular expression substitutions ('s/../../g') can be used to work
> on variables ('$n =~ s/1/2/g; # replace ones with twos in n'), but when
> no variable is given, the substitution works on the default '$_'
> variable instead.
> 
> The 's/[()]//g' part is a substitution ('s') and it is global ('g'). The
> '/' characters separate: the regular expression type or function ('s'),
> what is matched ('[()]'), what replaces a match ('' or nothing), and the
> options ('g'). The '[' and ']' delimit a set of characters to be
> matched, and this one will match a '(' charcter or a ')' character. The
> global ('g') option means it can match more than once per line or input
> chunk.
> 
> Sorry if that seems to simplistic or complicated. I am just practicing
> my written English. ;-)
> 
> Good luck, and get "Learning Perl" or "Programming Perl". You will not
> regret it,
> 
> Troy
> 
> -- 
> Troy Johnson   mailto:john1536@tc.umn.edu   http://umn.edu/~john1536/
> Question with boldness even the existence of a God; because, if there
> be one, he must more approve the homage of reason, than that of
> blindfolded fear.... Do not be frightened from this inquiry from any
> fear of its consequences. If it ends in the belief that there is no
> God, you will find incitements to virtue in the comfort and
> pleasantness you feel in its exercise...
> -- Thomas Jefferson, in a 1787 letter to his nephew
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tclug-list-unsubscribe@mn-linux.org
> For additional commands, e-mail: tclug-list-help@mn-linux.org
> 
>