how to change IFS in arrays


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to change IFS in arrays
# 1  
Old 11-10-2008
how to change IFS in arrays

hello again guys
do you know if it is possible to change IFS in a array?
i have a file like this:
name 1243 5454
name2 545 5455

i use a simple command like this to popolate the array:
data=`cat /usr1/air/tmp/data.txt`
arrei_data=($data)

the problem is that i want an array position for each line so that:
arrei_data[0]= name 1234 5454
arrei_data[1]= name2....

now i have an array position for each space separeted text
i'm working on ksh93

thank you very much
# 2  
Old 11-10-2008
Tools

You can change the IFS beforehand, however you must remember to change it back. Keep in mind that spaces in datafields can cause other issues elsewhere also. (For instance, if you are going to use awk on the data, you would have the same issue.)
Something I often do is tr " " "_" or tr " " "~" before storing data, then reverse the tr command later in my processing. That way, I maintain the spacing integrity throughout.
# 3  
Old 11-10-2008
thank you for your reply...can you tell me the command to change it (i tried with /n but it doesn't work)?
i suppose it should be something like set IFS=.....
thank you so much

Elio

Last edited by elionba82; 11-10-2008 at 10:57 AM..
# 4  
Old 11-10-2008
Code:
oldifs=$IFS
IFS='
'
...
do stuff
...
IFS=$oldifs

# 5  
Old 11-10-2008
Hammer & Screwdriver

echo "$IFS" will show you what is in there.
However, you might be better with
echo "$IFS" | od -b
since you will now see
0000000 040 011 012 012
meaning, 040=space and 011=tab and 012=LF and echo gives the last 012

To change,
IFS=:
would change to colon

In programming, you might want to save the current IFS
curr_ifs=$IFS
do whatever, and then put it back
IFS=$curr_ifs

[although I did not test that above syntax yet]
# 6  
Old 11-10-2008
thak you all guys...it's always a pleasure to come in this forum
bye
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Remote while IFS

Hello masters of scripting, I've been working to develop some basic monitoring scripts. I have solved one problem, but want to know how to solve the other. I have a script that runs locally to create an output file with the Linux system kernel paramters, preceeded by the system name: ... (2 Replies)
Discussion started by: LinuxRacr
2 Replies

2. Shell Programming and Scripting

Nested ifs

hi I keep getting an error with this nested if statement and am getting the error unexpected end of file, can anyone help me as to why this wont execute? #!/bin/bash #script to check wether the -i -v statements run correctly removeFile () { mv $1 $HOME/deleted }... (3 Replies)
Discussion started by: somersetdan
3 Replies

3. Shell Programming and Scripting

While loop and IFS?

Hi, while ; do echo "Please enter " read enter yyyy=${enter:0:4} mm=${enter:5:2} dd=${enter:8:2} result=`validateDate $yyyy $mm $dd` When does the loop keeping repeating till?? till 1 is equal to 1? what does this mean "${enter:0:4}" .The 0 and 4 part?? ... (3 Replies)
Discussion started by: sid22
3 Replies

4. Programming

question about int arrays and file pointer arrays

if i declare both but don't input any variables what values will the int array and file pointer array have on default, and if i want to reset any of the elements of both arrays to default, should i just set it to 0 or NULL or what? (1 Reply)
Discussion started by: omega666
1 Replies

5. Shell Programming and Scripting

How to use IFS in this scenario?

Given the scenario like this, if at all if have to use IFS on the below given example, how it should be used. IFS=/ eg: /xyz/123/348/file1 I want to use the last slash /file1 . So can anyone, suggest me how to pick the last "/" as a IFS. (4 Replies)
Discussion started by: raghunsi
4 Replies

6. Shell Programming and Scripting

read and IFS

Hi, This is out of curiosity: I wanted to extract year, month and date from a variable, and thought that combining read and IFS would help, but this doesn't work: echo "2010 10 12" | read y m d I could extract the parts of the date when separated by a -, and setting IFS in a subshell: ... (3 Replies)
Discussion started by: raphinou
3 Replies

7. Shell Programming and Scripting

regarding IFS=

hi i am a learner can some explain "export IFS=$(echo "\n\t\a")" i am not able to understand the functionality please help thanks Satya (1 Reply)
Discussion started by: Satyak
1 Replies

8. UNIX for Dummies Questions & Answers

Help on IFS command!

Hi! I am working in korn shell. I want to reset the dimiliter for the set command to "|" but instead of a command prompt return I am getting something as below After issuing the command I am getting this....as if the shell is expecting something else. Can anybody suggest what's the problem. ... (2 Replies)
Discussion started by: udiptya
2 Replies

9. UNIX for Dummies Questions & Answers

IFS variable

How can I set the value for IFS variable (2 Replies)
Discussion started by: mahabunta
2 Replies

10. UNIX for Dummies Questions & Answers

the IFS variable

Hi all, Ok os heres my situation. I have created a database style program that stores a persons info (name,address,phone number etc.) in a file ("database"). after i read in all the values above, i assign them to a line variable: line="$name^$address^$phonenum" >> phonebuk as you can see... (1 Reply)
Discussion started by: djt0506
1 Replies
Login or Register to Ask a Question