Sponsored Content
Top Forums Shell Programming and Scripting Reading a file line by line and processing for each line Post 302292411 by cfajohnson on Friday 27th of February 2009 07:39:09 PM
Old 02-27-2009
Quote:
Originally Posted by adderek
Beginner? This is one of the better ksh codes that I have seen. And believe me - I have seen plenty od it.

You must be joking! It's extremely inefficient and poorly written code.
Quote:
Some hints that might help you:
- Try enclosing variables with quotes: variable="${var}" (the way you are using could work fine but under some circumstances you can get into problems - an example is when ${var} is equal to 'some text with $trange characters').

It is never necessary to quote the assignment of one variable to another; it doesn't matter what the variable contains. It only needs to be quoted when there is a literal space in the assignment:

Code:
x='the quick brown fox' ## Quotes necessary for literal spaces
var=$x  ## No quotes necessary

Quote:
- I'm not sure if there is a need to enclose that function within brackets - if I remember correct you should be able to "print" the file into the loop without brackets

There's no need, but it doesn't hurt.
Quote:
- Send this sid_home.txt file and make sure that the problem is not related to end of line characters (unix/max/windows format) - if you send it then I could take a look onto it

Why? All that's needed is to look at the file with od -c and look for \r characters.

However, it would help to post a few lines of the file so we can see what the input to the loop contains.

It should contain a list of filenames, since $LINE is being used as a filename argument to the (probably unnecessary) awk commands.
Quote:
- Use tabulation - this code you have sent is not very readable

I think you mean indentation. That's always good, and more importantly, code posted to this forum should always be enclosed in [code] tags.
Quote:
- You might try the alternative syntax as well (might be worth giving a try): cat "${file}" |

Why would you use cat? It cannot make any difference.
Quote:
while $(read LINE);do ... done

What do you think while $(read LINE) does?

The assignment to LINE only lasts for the duration of the subshell inside $( ... ); it will not be available to the rest of the script.

In other words, it does nothing.
Quote:
- Execute your code with "set -x;set -v" and check the output. You might try some debuggers as well.
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

KSH: Reading a file line by line into multiple arrays

Hi - I have a file that contains data in this format:- #comment value1 value2 value3 #comment value4 value5 value6 value7 #comment value8 value9 I need to read value1, value2 and value3 into one array, value4 value5 value6 and value7 into another array and value8 and value9 into a 3rd... (2 Replies)
Discussion started by: sniper57
2 Replies

2. Shell Programming and Scripting

reading a file inside awk and processing line by line

Hi Sorry to multipost. I am opening the new thread because the earlier threads head was misleading to my current doubt. and i am stuck. list=`cat /u/Test/programs`; psg "ServTest" | awk -v listawk=$list '{ cmd_name=($5 ~ /^/)? $9:$8 for(pgmname in listawk) ... (6 Replies)
Discussion started by: Anteus
6 Replies

3. Shell Programming and Scripting

[Solved] Problem in reading a file line by line till it reaches a white line

So, I want to read line-by-line a text file with unknown number of files.... So: a=1 b=1 while ; do b=`sed -n '$ap' test` a=`expr $a + 1` $here do something with b etc done the problem is that sed does not seem to recognise the $a, even when trying sed -n ' $a p' So, I cannot read... (3 Replies)
Discussion started by: hakermania
3 Replies

4. UNIX for Dummies Questions & Answers

Parsing file, reading each line to variable, evaluating date/time stamp of each line

So, the beginning of my script will cat & grep a file with the output directed to a new file. The data I have in this file needs to be parsed, read and evaluated. Basically, I need to identify the latest date/time stamp and then calculate whether or not it is within 15 minutes of the current... (1 Reply)
Discussion started by: hynesward
1 Replies

5. Shell Programming and Scripting

How to start reading from the nth line till the last line of a file.

Hi, For my reuirement, I have to read a file from the 2nd line till the last line<EOF>. Say, I have a file as test.txt, which as a header record in the first line followed by records in rest of the lines. for i in `cat test.txt` { echo $i } While doing the above loop, I have read... (5 Replies)
Discussion started by: machomaddy
5 Replies

6. Shell Programming and Scripting

Reading text file, comparing a value in a line, and placing only part of the line in a variable?

I need some help. I would like to read in a text file. Take a variable such as ROW-D-01, compare it to what's in one line in the text file such as PROD/VM/ROW-D-01 and only input PROD/VM into a variable without the /ROW-D-01. Is this possible? any help is appreciated. (2 Replies)
Discussion started by: xChristopher
2 Replies

7. Shell Programming and Scripting

Comparison of fields then increment a counter reading line by line in a file

Hi, i have a scenario were i should compare a few fields from each line then increment a variable based on that. Example file 989878|8999|Y|0|Y|N|V 989878|8999|Y|0|N|N|V 989878|8999|Y|2344|Y|N|V i have 3 conditions to check and increment a variable on every line condition 1 if ( $3... (4 Replies)
Discussion started by: selvankj
4 Replies

8. Shell Programming and Scripting

Reading line by line from live log file using while loop and considering only those lines start from

Hi, I want to read a live log file line by line and considering those line which start from time stamp; Below code I am using, which read line but throws an exception when comparing line that does not contain error code tail -F /logs/COMMON-ERROR.log | while read myline; do... (2 Replies)
Discussion started by: ketanraut
2 Replies

9. UNIX for Beginners Questions & Answers

Reading a file line by line and print required lines based on pattern

Hi All, i want to write a shell script read below file line by line and want to exclude the lines which contains empty value for MOUNTPOINT field. i am using centos 7 Operating system. want to read below file. # cat /tmp/d5 NAME="/dev/sda" TYPE="disk" SIZE="60G" OWNER="root"... (4 Replies)
Discussion started by: balu1234
4 Replies
All times are GMT -4. The time now is 09:01 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy