Visit Our UNIX and Linux User Community


How to read a text file and assign the values in the same to a variable in loop


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users How to read a text file and assign the values in the same to a variable in loop
# 1  
Old 06-09-2011
How to read a text file and assign the values in the same to a variable in loop

Hi,

I have a text file with multiple lines, each having data in the below format <DOB>,<ADDRESS>

I have to write a script which reads each line in the text file in loop, assign the values to these variables and do some further processing in it.

Using the following code prints the values but I need them in variables.Also, it reads only first line of the file.
cat filename | paste -d"," - - - | awk 'BEGIN{FS=","}{print "DOB="$1" ADDRESS="$2" }'
Am I wrong in my approach?
# 2  
Old 06-09-2011
post the sample input file
This User Gave Thanks to itkamaraj For This Post:
# 3  
Old 06-09-2011
Sample file for it

The sample file will be a text/csv file with datas as

C:/My Documents/Data,20
D:/My photos,30


I need a way to read the values of the folder path and age of files in different variables from different lines in a loop.
# 4  
Old 06-09-2011
Code:
for i in `cat filename`
do
 file_path=`echo  $i | cut -d"," -f1`
 age=`echo $i | cut -d"," -f2`
 
 echo $file_path
 echo $age 
done

This User Gave Thanks to itkamaraj For This Post:
# 5  
Old 06-09-2011
Quote:
Originally Posted by itkamaraj
Code:
for i in `cat filename`
do
 file_path=`echo  $i | cut -d"," -f1`
 age=`echo $i | cut -d"," -f2`
 
 echo $file_path
 echo $age 
done

Its working, Thank you!
# 6  
Old 06-09-2011
one more way

Code:
while read line ; do
path=`echo $line | awk -F',' '{print $1}'`
age=`echo $line | awk -F',' '{print $2}'`
echo $path 
echo $age
done < filename


Last edited by vidyadhar85; 06-09-2011 at 05:09 AM..
This User Gave Thanks to vidyadhar85 For This Post:
# 7  
Old 06-09-2011
Yet another way

Which saves some processes since there are no pipelines. Just tell the shell the Input Field Separator is the character of the field separator in the file and it automatically will use that to parse each line:
Code:
#!/bin/ksh

file="inputfile.txt"

while IFS=',' read path age
do
  print "[$path] [$age]"
done < $file

exit 0

Output:
Code:
$ a
[C:/My Documents/Data] [20]
[D:/My photos] [30]
$


Last edited by gary_w; 06-09-2011 at 01:28 PM.. Reason: fixed a typo

Previous Thread | Next Thread
Test Your Knowledge in Computers #565
Difficulty: Medium
The logical and operator is also called a conjunction.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Assign Values to a Variable in While Loop and Update the File

Hello, Could anyone please help me with Assigning a value to variable and then updating the value in the original file IFS='|' while read -r Serial_ID JOB_NAME STATUS do if then echo "Perform Fuctions" ???Assign STATUS to COMPLETED and Update File??? done <File (7 Replies)
Discussion started by: infernalhell
7 Replies

2. Shell Programming and Scripting

Do While Loop + Read From File + assign line to a variable

Hello, I am using below code for reading from a file and assigning the values to a variable , but it is loosing the value after the loop , please suggest to retain the value of the variable after the loop , while IFS=: read -r line do set $dsc=$line echo 'printing line variable ' $line... (1 Reply)
Discussion started by: ParthThakkar
1 Replies

3. Shell Programming and Scripting

Read record from the text file contain multiple separated values & assign those values to variables

I have a file containing multiple values, some of them are pipe separated which are to be read as separate values and some of them are single value all are these need to store in variables. I need to read this file which is an input to my script Config.txt file name, first path, second... (7 Replies)
Discussion started by: ketanraut
7 Replies

4. Shell Programming and Scripting

Unable to read assign values to two variables in while loop

I am trying to read a input file which has two columns separated by space Input file server1 server2 server3 server4 server5 server6 When i execute the below while code it reads line by line and a and b variables are able to successfully fetch the values while read a b do echo "$a" echo... (5 Replies)
Discussion started by: chidori
5 Replies

5. Shell Programming and Scripting

Read record from the text file & assign those values to variables in the script

For eg: I have sample.txt file with 4 rows of record like: user1|password1 user2|password2 user3|password3 user4|password4 The username and password is sepsrated by '|' I want to get the 1st row value from the file and assign it to two different variables(username and password) in my... (1 Reply)
Discussion started by: priya001
1 Replies

6. Fedora

How to read a text file and assign the values in the same to a variable in loop

Hi, I have a text file with multiple lines, each having data in the below format <DOB>,<ADDRESS> I have to write a script which reads each line in the text file in loop, assign the values to these variables and do some further processing in it. Using the following code prints the... (1 Reply)
Discussion started by: manishab00
1 Replies

7. Shell Programming and Scripting

Perl:Read single value from text file and assign to variable

Hello All, A part of my very basic perl code requires me to read a single value from a text file. The file output is the following: Reading image ... done IMAGEREGION=0x0x0-256x162x256 VOXELDIMENSION=0.9375000000x1.2000000477x0.9375000000 VOXELNUMBER=10527001... (7 Replies)
Discussion started by: ncl
7 Replies

8. Shell Programming and Scripting

Read the csv file and assign the values in to variable

I have a csv file with the values seperated by commas.I want to extract these values one by one and assign to a variable using shell script.Any ideas or code? (11 Replies)
Discussion started by: rajbal
11 Replies

9. Shell Programming and Scripting

Read a file and assign the values to a variable

i have a file in this format curyymm PRVYYMM CDDMmmYY bddMmmyy eddMmmyy --------- ------- ------------ ---------- ----------- 0906 0905 09Jun09 01Jun09 30Jun09 ----------- --------- ------------ ------------ ----------- i need to read the... (5 Replies)
Discussion started by: depakjan
5 Replies

10. Shell Programming and Scripting

how can i read text file and assign its values to variables using shell

Hello, I have a cat.dat file, i would like shell to read each 3 lines and set this 3 lines to 3 different variables. my cat.dat is: 11 12 +380486461001 12 13 +380486461002 13 14 +380486461003 i want shell to make a loop and assign 1st line to student_id, 2nd line to... (4 Replies)
Discussion started by: rosalinda
4 Replies

Featured Tech Videos