articlecavern.com articlecavern.com
Search:    Main Page :> About Us :> Security & Privacy :> Terms of Use :> Add Url :> Add Article   
Get 3 way links
 

Medical Care

Culture & Art

Government & Politics

Internet & Computers

People & Communities

Technology & Science

Games & Play

Business & Services

Children

Eating & Drinking

Relationship & Lifestyle

Outdoor & Sports

Garden & Home

Shopping & Auction

Recreation & Entertainment

Issues & News

Hotels & Travel

Finance & Investment

Fitness & Health

Academics & Education

Jobs & Careers

Self Healing

Vehicles & Automotive

Estate & Realty


 

  Main Page › Internet & Computers › Operating SystemSoftware
   
 

Power of the Unix 'for' Loop

   

Author: Praveen Puri

If you are a programmer or engineer working in a unix or linux environment, you will probably find the shell 'for' loop to be a handy tool for automating command line tasks.

Here are three examples of the 'for' loop. All the commands are in italics and should be entered on the command line, followed by a carriage return. Note that, after entering the initial 'for' line, you will get the secondary unix prompt (usually a '>').

1. Rename all ".old" files in the current directory to ".bak":

for i in *.old

do

j=`echo $i|sed 's/old/bak/'`

mv $i $j

done


Here, we looped thru all files with extension ".old", setting the variable "i" to be the file name we are currently looping thru. Then, between the "do" and "done", we have the body of the loop. On each pass, we echo the file name ("i") to the unix stream editor sed. Sed replaces the "old" with "bak" (so file "a.old" becomes "a.bak"), and saves the changed name to variable "j". Then, we use the unix move (mv) command to rename the original file (ex. a.old) to the new file (a.bak).



2. Change all instances of "yes" to "no" in all ".txt" files in the current directory. Back up the original files to ".bak".

for i in *.txt

do

j=`echo $i|sed 's/txt/bak/'`

mv $i $j

sed 's/yes/no/' $j > $i

done


In this case, we rename each file from ".txt" to ".bak". Additionally, we use sed a second time, on the contents of the original file (now with a ".bak" extension) and save the modified text back to the original name (with ".txt").



3. Loop thru a text file containing possible file names. If the file is readable, print the first line, otherwise print an error message:

for i in `cat file_list.txt`

do

if test -r $i

then

echo "Here is the first line of file: $i"

sed 1q $i

else

echo "file $i cannot be open for reading."

fi

done


Here, we loop thru the results of a command (in this case "cat"), rather than looping thru files in the directory. We also use an if statement with the "test" command to test for a condition (in this case, whether the file is readable).

Author Bio:
Praveen Puri is a proclaimed scripter. Praveen likes to write articles about this topic.
You can also reach this article by using: operating system, linux operating system, computer operating systems, free operating systems
 
 
 

Related Articles

 
CD Duplication Systems
 
How To Choose A Quality Web Host
 
Pay-Per-Click Search Engines: A Really Bad Investment
 
Best Practices in Offshore Software Development
 
Making Money With Internet Marketing
 
ATA vs SATA
 
8 Key Factors that Are Essential for a Solid Internet Business
 
The Autoresponder Your Faithful and Profitable Servant
 
6 Tips To Maximize Your Affiliate Commissions
 
3 Important Techniques for Securing a Wireless Network
 
 
 
 
 

Secret Internet Marketing Tactic Lets You Dominate the Search Engines

If you want to get a LOT more Internet traffic than you are now, without having to do a lot of compl ... - Michael Senoff
 

How To Avoid Being Cheated By Your SEO Company

Search engine optimization (SEO) can be a time consuming and tiresome task. Outsourcing this to a co ... - 123456789
 

Facility Maintenance Management Software

Facilities form the non-core services of a corporation or any organization. Non-core services can in ... - Eddie Tobey
 
 

Three Methods for Making Money from Online Games

Many options exist for online gamers to make money whether you are an avid World of Warcraft player ... - Aaron Crow
 

Cisco CCNP / BSCI Certification: The BGP Attribute "MED"

To pass the BSCI exam and earn your CCNP certification, you?ve got to master the BGP attributes. Lea ... - Chris Bryant
 
 
Main Page :> Security & Privacy :> Terms of Use
Copyright © 2006, www.articlecavern.com