Problem with read line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with read line
# 1  
Old 10-16-2010
Problem with read line

Hi everybody, I am new to shell script. Please help me with this problem.
I have a file test.txt with the content like this:
Quote:
! ((x5 * -1/3000) = x6)
((x5 * -1/2000) = x6)
I have a shell script test.sh like this
Code:
#!/bin/sh 

while read line
do    
    echo $line >> out.txt
done < test.txt

out.txt is expected to have the same content with test.txt. But here is the output.txt
Quote:
! ((x5 laconfirm remote1 test.sh test.txt -1/3000) = x6)
((x5 laconfirm out.txt remote1 test.sh test.txt -1/2000) = x6)
laconfirm remote1 test.sh test.txt are files in the same folder.
It replaces the * in the original text.txt

Would you please tell me what is my problem and how I can fix it?
Thanks in advance.
# 2  
Old 10-16-2010
Code:
echo "$line"

the best way to make an exact reproduction is like this:
Code:
while IFS= read -r line
do 
  printf "%s\n" "$line"
done < infile > out.txt

This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 10-16-2010
You save me! Many thanks Smilie
# 4  
Old 10-16-2010
Quote:
Originally Posted by Scrutinizer
Code:
echo "$line"

the best way to make an exact reproduction is like this:
Code:
while IFS= read -r line
do 
  printf "%s\n" "$line"
done < infile > out.txt


Wouldn't your code add an empty line at the end of the out.txt even if infile doesn't have one ?
# 5  
Old 10-16-2010
Good question. No it would not add an empty line. An empty line would mean 2 consecutive linefeed characters. Or do you mean add a linefeed character if it isn't there? If a file does not have a linefeed at the last line then it isn't terminated and that line would then not be read by the read statement.

Last edited by Scrutinizer; 10-16-2010 at 06:14 PM..
This User Gave Thanks to Scrutinizer For This Post:
# 6  
Old 10-16-2010
Quote:
Originally Posted by Scrutinizer
Or do you mean add a linefeed character if it isn't there?
yes i meant that ...

Quote:
Originally Posted by Scrutinizer
If a file does not have a linefeed at the last line then it isn't terminated and that line would then not be read by the read statement.
Ah ok, thanks a lot for the explanations, i will sleep a bit less ignorant tonight Smilie...
# 7  
Old 10-16-2010
Quote:
Originally Posted by Scrutinizer
Code:
echo "$line"

the best way to make an exact reproduction is like this:
Code:
while IFS= read -r line
do 
  printf "%s\n" "$line"
done < infile > out.txt

Without quote
Code:
echo "$line"

Why does it read all files in that directories?
Or why does it print those extra lines without quote?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script UNIX to read text file line by line

i have a text file as belows, it includes 2 columns, 1st is the column name, 2nd is the file_name data_file.txt column_name file_name col1 file1 col2 file2 col3 file1 col4 file1 col5 file2 now, i would like to... (4 Replies)
Discussion started by: tester111
4 Replies

2. Shell Programming and Scripting

[BASH] read 'line' issue with leading tabs and virtual line breaks

Heyas I'm trying to read/display a file its content and put borders around it (tui-cat / tui-cat -t(ypwriter). The typewriter-part is a 'bonus' but still has its own flaws, but thats for later. So in some way, i'm trying to rewrite cat using bash and other commands. But sadly it fails on... (2 Replies)
Discussion started by: sea
2 Replies

3. Shell Programming and Scripting

How to read file line by line and compare subset of 1st line with 2nd?

Hi all, I have a log file say Test.log that gets updated continuously and it has data in pipe separated format. A sample log file would look like: <date1>|<data1>|<url1>|<result1> <date2>|<data2>|<url2>|<result2> <date3>|<data3>|<url3>|<result3> <date4>|<data4>|<url4>|<result4> What I... (3 Replies)
Discussion started by: pat_pramod
3 Replies

4. Shell Programming and Scripting

Bash script to read a file from particular line till required line and process

Hi All, Am trying to write wrapper shell/bash script on a utility tool for which i need to pass 2 files as arugment to execute utility tool. Wraper script am trying is to do with above metion 2 files. utility tool accepts : a. userinfo file : which contains username b. item file : which... (2 Replies)
Discussion started by: Optimus81
2 Replies

5. Shell Programming and Scripting

Need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line...

Hello, I need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line... An example of entries in the file would be: SRVXPAPI001 ERRO JUN24 07:28:34 1775 REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F ... (8 Replies)
Discussion started by: Ferocci
8 Replies

6. Shell Programming and Scripting

how to read the contents of two files line by line and compare the line by line?

Hi All, I'm trying to figure out which are the trusted-ips and which are not using a script file.. I have a file named 'ip-list.txt' which contains some ip addresses and another file named 'trusted-ip-list.txt' which also contains some ip addresses. I want to read a line from... (4 Replies)
Discussion started by: mjavalkar
4 Replies

7. Shell Programming and Scripting

Shell script to read a text file line by line & process it...

Hi , I am trying to write an shell, which reads a text file (from a location) having a list of numbers of strictly 5 digits only ex: 33144 Now my script will check : 1) that each entry is only 5 digits & numeric only, no alphabets, & its not empty. 2)then it executes a shell script called... (8 Replies)
Discussion started by: new_to_shell
8 Replies

8. Shell Programming and Scripting

Array; while read line do problem

Hi - I don't understand why the following script isn't working. I want to read the contents of a while loop into an array, but it looks like the array is destroyed once the while loop is finished. Can anybody help? someFile: PC_1 wf_test1 Test PC_2 wf_test2 Test PC_3 wf_test3 Test Script:... (3 Replies)
Discussion started by: lt1776
3 Replies

9. Shell Programming and Scripting

bash: read file line by line (lines have '\0') - not full line has read???

I am using the while-loop to read a file. The file has lines with null-terminated strings (words, actually.) What I have by that reading - just a first word up to '\0'! I need to have whole string up to 'new line' - (LF, 10#10, 16#A) What I am doing wrong? #make file 'grb' with... (6 Replies)
Discussion started by: alex_5161
6 Replies

10. Shell Programming and Scripting

I need suggestion on problem read a file line by line and do stuff

At first, give my best wish for all MOD and admins here. I"m learning bash shell program just for a month, not too much, not too little, but i must admire that i'm very bad at math and algorithm. :( I want to do this : Read the content of a file line by line and at each line, ask me want to... (3 Replies)
Discussion started by: madi3d8
3 Replies
Login or Register to Ask a Question