amazingarticlelist.com amazingarticlelist.com
   Index Page :> About Us :> Security & Privacy :> Terms of Use :> Add Your Link :> Add Article
Search:   
Multiple links exchange
 

Education & Learning

Companies & Business

News & Media

Teens & Kids

Research & Science

Tour & Travel

Games & Play

Recreation

Finance & Banking

Medical Care

Drink & Food

Lifestyle & Fashion

Culture & Art

Self Help

Property & Agents

Sports

Shopping & Auction

Vehicles & Automotive

Society & Communities

Employment & Careers

Policies & Law

Computers & Software

Health & Therapy

Home Family & Garden


 

Index Page –› Computers & Software –› Computer Operating Systems
 

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 renowned writer. Praveen likes to compose articles about this field.
You can search for this article using: operating system, linux operating system, computer operating systems, free operating systems
 
 
 

Related Articles

 
The Need of Ethical Hacking Course
 
Get More Targeted Traffic, List Subscribers and Customers; Without Paying a Cent!
 
Wireless versus Ethernet networks
 
Free IPODs: The Truth About Free IPOD Giveaways
 
Health Effects of Internet Marketing
 
E-Cheques and Online Commerce
 
Website Development Advice Plus Website Design Tips
 
Cisco CCNA Certification Exam Tutorial: Keep Your Most Important Appointment
 
CCNA / CCNP Home Lab Tutorial: A Guide To Cable Types
 
The Help Desk
 
 
 
Index Page :> Security & Privacy :> Terms of Use
© 2008 www.amazingarticlelist.com All Rights Reserved.