for loop in Unix

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting for loop in Unix
# 8  
Old 10-28-2009
Originally Posted by pogdorica
But ..... doesn't he want the output in a unique line ????
No pogdorica. He wants to override the space like a delimiter but keep the new line as delimiter
# 9  
Old 10-28-2009
Originally Posted by kinny
This works. But theres no way to do the same with a for loop.
The while loop is much better. The for loop you've done is a bad programming habit sometimes called useless use of backticks -- a waste of memory, processes, and a weak link in your program. Every byte in that file gets read and written an extra time by a completely useless cat, then crammed all at once into one enormous shell variable before it can even start to use the data. Iif it'll fit, that is -- there are limits to the size of a shell variable, system-dependent, which can be quite small. If it doesn't fit, it might truncate it, or refuse to work at all with an error message about too many arguments.

The while loop reads once instead of twice, writes once instead of twice, doesn't need to store the entire file in memory, and will work with any size of file.

Last edited by Corona688; 10-28-2009 at 02:23 PM..
# 10  
Old 10-28-2009
If there is only one line in the file "for" or "while" are irrelevant.

cat work.log|read i
echo "${i}"

1 TGBUS I-US 0;15;83

Ps. If there is more than one line, "while" is preferable to "for" as advised above.
# 11  
Old 10-28-2009
Originally Posted by methyl
If there is only one line in the file "for" or "while" are irrelevant.

cat work.log|read i

Not only UUOC, but that will not work in most shells as the read command is executed in a subshell and $i will not be available anywhere else in the script.

read i < work.log

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Running in a loop in UNIX

I have a table in oracle which has 2 columns table_name table_name1 U1 T1 U2 T2 I have to take these as a variable in unix and then go to /home/bin and execute a unix command using these variables. Considering that there is only one row in the table I was able to write the below but need help... (2 Replies)
Discussion started by: Ashcalin
2 Replies

2. UNIX for Dummies Questions & Answers

UNIX loop question

Dear all, I have a question regarding unix loops. I want to run 100 commands using file1.txt-file100.txt in parallel. I use the code below and it works well. But now I want to run first 20 commands first using file1.txt-file20.txt in parallel, then when they are completed, run the next 20... (4 Replies)
Discussion started by: forevertl
4 Replies

3. Shell Programming and Scripting

UNIX for loop

Guys, Please help me on the below.. sample.prm /u/test/: purgedays=30 zipdays=7 purgefile=log.gz zipfile=log /u/test/: purgedays=30 purgefile=txt.gz zipfile=txt zipdays=7 (2 Replies)
Discussion started by: AraR87
2 Replies

4. Shell Programming and Scripting

Unix For loop help

Hi, I need to reset root password on multiple servers, need to do it from my Jump server, so I'm plannin to use for loop. Can someone pleaz suggest me how to do this...? For example, I check the uptime of a server from my jump box, =========================================== for i in... (1 Reply)
Discussion started by: suren1829
1 Replies

5. UNIX for Dummies Questions & Answers

Help with unix for loop

Hi, I have a command that I want to translate to Unix. I mostly work with Windows and because of that I am stuck on a part. What I cannot find on the internet is skipping the first lines in a for loop and using a certain word/token. (I know how to do a normal loop with output) I need to skip... (1 Reply)
Discussion started by: flappy
1 Replies

6. Shell Programming and Scripting

Nested loop in Unix

Hi, I have the following script which is two while loops, but it is working only for the Inner loop without going back to the outer loop. the aim of this script is to remove data files from memory after each five times for each setting of the rotate parameter #!/bin/csh set hdir =... (1 Reply)
Discussion started by: moon218
1 Replies

7. Shell Programming and Scripting

Unix loop

i have 2 files with entries like, file 1: 11 22 33 .. and so on file 2: jhon mercy rocky and so on.. i want print the content of those files as 11@jhon 22@mercy 33@rocky and so on ..... (5 Replies)
Discussion started by: Gopal_Engg
5 Replies

8. Shell Programming and Scripting

for loop in unix

hi, can any one suggest why the program 2 is not working. only difference is for ab in *.txt for ab in a_DATA.txt b_DATA.txt c_DATA.txt ------------------------------------ Program :1 (working fine) #!/bin/ksh for ab in a_DATA.txt b_DATA.txt c_DATA.txt suf="_" echo "old->... (1 Reply)
Discussion started by: deep_kol
1 Replies

9. Shell Programming and Scripting

Please help with UNIX while loop...

Hi all. I am trying to execute a while loop that reads a log file containing a file listing, and it compares file sizes, etc. But I am getting an error that makes it seem like it is not reading the log file line by line. When I do a 'more' on the log file, it doesn't appear to be wrapped... ... (1 Reply)
Discussion started by: gerard1
1 Replies

10. Shell Programming and Scripting

timing a loop in unix.

hi guys.. i have a shell script that loops through a certain directory to see if a file has been created and then prints the file if it exists... the only problem i have now is that sometimes the flat does not get created by the program thats supposed to create it, in this scenario, my loop... (1 Reply)
Discussion started by: wolkott
1 Replies
Login or Register to Ask a Question