Visit Our UNIX and Linux User Community


Extracting From A File Then Processing


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extracting From A File Then Processing
# 1  
Old 10-01-2009
Extracting From A File Then Processing

Hi. Im working with this data in a file:

Code:
-94.49109387652327,39.2956736296775
-93.0906917141962,38.72762798197614
-90.57659976220785,-40.25685140137304
-92.340961875134,39.44522321129584
92.340961875134,39.44522321129584
-94.72083812873272,37.63567097374739

Is there a way to set everything before the comma as say var1 and everything after the comma as var2. Then be able to process those vars, then move onto the next set until theres no more sets?

All that data was extracted from a KML using:

Code:
sed -n 's/.*<coordinates>\(.*\)\,.*/\1/ip;T' Test.kml

The line it extracts from looks like this:

Code:
<coordinates>-90.57659976220785,40.25685140137304,0</coordinates>

Maybe do the same thing only extracting them individually from the KML instead of the other file and then processing them, then moving to the next and so forth?
# 2  
Old 10-01-2009
Code:
nawk -F'[>,]' '{print $2, $3}' Test.kml

# 3  
Old 10-01-2009
Hi.

You could try something like:

Code:
sed -n 's/.*<coordinates>\(.*\)\,.*/\1/ip;T' Test.kml | while IFS=, read A B; do
  echo a is $A   b is $B
  ...
done

(this assumes that your Test.kml looks like the data you posted after sed processed it)

i.e.
Code:
-94.49109387652327,39.2956736296775
-93.0906917141962,38.72762798197614
-90.57659976220785,-40.25685140137304
-92.340961875134,39.44522321129584
92.340961875134,39.44522321129584
-94.72083812873272,37.63567097374739

Then the output is
Code:
a is -94.49109387652327 b is 39.2956736296775
a is -93.0906917141962 b is 38.72762798197614
a is -90.57659976220785 b is -40.25685140137304
a is -92.340961875134 b is 39.44522321129584
a is 92.340961875134 b is 39.44522321129584
a is -94.72083812873272 b is 37.63567097374739

# 4  
Old 10-02-2009
This is just to compile some stuff for my reference.

Code:
sed -n 's/.*<coordinates>\(.*\)\,.*/\1/ip;T' Test.kml 
-94.49109387652327,39.2956736296775
-93.0906917141962,38.72762798197614
-90.57659976220785,40.25685140137304
-92.340961875134,39.44522321129584
-92.340961875134,39.44522321129584
-94.72083812873272,37.63567097374739


sed -n 's/.*<longitude>\(.*\)<\/longitude>.*/\1/ip;T' Test.kml 
-94.49109387652327
-93.0906917141962
-90.57659976220786
-92.340961875134
-92.340961875134
-94.72083812873272

#Math with decimals
a=`echo "1+1.2" | bc` && echo $a
2.2

a=`dc -e '1.2 1+p'`
echo $a
2.2

#Extracting coords as vars then processing
sed -n 's/.*<coordinates>\(.*\)\,.*/\1/ip;T' Test.kml | while IFS=, read A B; do
  echo a is $A   b is $B
  echo "asdf"
done
a is -94.49109387652327 b is 39.2956736296775
a is -93.0906917141962 b is 38.72762798197614
a is -90.57659976220785 b is 40.25685140137304


#Multi Condition if statement
if [ $i = "+" -o $i = "-" -o $i = "/" -o $i = "%" ]; then
$x=$vr1
else
print "You have entered an invalid option."

# 5  
Old 10-02-2009
Quote:
Originally Posted by Grizzly
This is just to compile some stuff for my reference.

Code:
sed -n 's/.*<coordinates>\(.*\)\,.*/\1/ip;T' Test.kml 
-94.49109387652327,39.2956736296775
-93.0906917141962,38.72762798197614
-90.57659976220785,40.25685140137304
-92.340961875134,39.44522321129584
-92.340961875134,39.44522321129584
-94.72083812873272,37.63567097374739


sed -n 's/.*<longitude>\(.*\)<\/longitude>.*/\1/ip;T' Test.kml 
-94.49109387652327
-93.0906917141962
-90.57659976220786
-92.340961875134
-92.340961875134
-94.72083812873272

#Math with decimals
a=`echo "1+1.2" | bc` && echo $a
2.2

a=`dc -e '1.2 1+p'`
echo $a
2.2

#Extracting coords as vars then processing
sed -n 's/.*<coordinates>\(.*\)\,.*/\1/ip;T' Test.kml | while IFS=, read A B; do
  echo a is $A   b is $B
  echo "asdf"
done
a is -94.49109387652327 b is 39.2956736296775
a is -93.0906917141962 b is 38.72762798197614
a is -90.57659976220785 b is 40.25685140137304


#Multi Condition if statement
if [ $i = "+" -o $i = "-" -o $i = "/" -o $i = "%" ]; then
$x=$vr1
else
print "You have entered an invalid option."

I never thought of the site as a personal organiser before Smilie Have a word with Neo. He might want to endorse it!
# 6  
Old 10-03-2009
Hah yea it just made sense. Easiest way to transport code from home to work. I tried out

Code:
sed -n 's/.*<coordinates>\(.*\)\,.*/\1/ip;T' Test.kml | while IFS=, read A B; do
  echo a is $A   b is $B
  echo "asdf"
done

at home on Ubuntu 9.04 and it worked but now it says that the command is garbled on solaris 10. I had a feeling this would happen as Im sure my Solaris box must be running an older version of pretty much everything. Can anyone think of a more flexible or older sed/bash friendly way perhaps?
# 7  
Old 10-03-2009
Hi.

Well, the nawk from vger works fine, which would leave you with:
Code:
nawk -F'[>,]' '{print $2, $3}' | while read A B; do
  echo a is $A   b is $B
done

(use /usr/xpg4/bin/awk if you don't have nawk)

Or an alternative sed:
Code:
sed 's/.*<coordinates>\(.*\)<.*/\1/'  | while IFS=, read A B junk; do
  echo a is $A   b is $B
done


Previous Thread | Next Thread
Test Your Knowledge in Computers #685
Difficulty: Medium
Reverse Polish notation (RPN), also known as Polish programming notation.
True or False?

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

awk - Rename output file, after processing, same as input file

I have one input file ABC.txt and one output DEF.txt. After the ABC is processed and created output, I want to rename ABC.txt to ABC.orig and DEF to ABC.txt. Currently when I am doing this, it does not process the input file as it cannot read and write to the same file. How can I achieve this? ... (12 Replies)
Discussion started by: High-T
12 Replies

2. Programming

awk processing / Shell Script Processing to remove columns text file

Hello, I extracted a list of files in a directory with the command ls . However this is not my computer, so the ls functionality has been revamped so that it gives the filesizes in front like this : This is the output of ls command : I stored the output in a file filelist 1.1M... (5 Replies)
Discussion started by: ajayram
5 Replies

3. Shell Programming and Scripting

Recursive file processing from a path and printing output in a file

Hi All, The script below read the path and searches for the directories/subdirectories and for the files. If files are found in the sub directories then read the content of the all files and put the content in csv(comma delimted) format and the call the write to xml function to write the std... (1 Reply)
Discussion started by: Optimus81
1 Replies

4. Shell Programming and Scripting

Help with File processing - Extracting the column

I have a line from table space report: 5 135_TT ms Normal 1774336.0 1774208.0 761152.0 1013056.0 57.1% Now I have to get 1013056.0 as o/p. For this I tried cut -f32 -d" " previously it worked now it is showing empty space. Suggest me the best code for this which... (1 Reply)
Discussion started by: karumudi7
1 Replies

5. Shell Programming and Scripting

How to make parallel processing rather than serial processing ??

Hello everybody, I have a little problem with one of my program. I made a plugin for collectd (a stats collector for my servers) but I have a problem to make it run in parallel. My program gathers stats from logs, so it needs to run in background waiting for any new lines added in the log... (0 Replies)
Discussion started by: Samb95
0 Replies

6. Shell Programming and Scripting

how to change the current file processing to some other random file in awk ?

Hello, say suppose i am processing an file emp.dat the field of which are deptno empno empname etc now say suppose i want to change the file to emp.lst then how can i do it? Here i what i attempted but in vain BEGIN{ system("sort emp.dat > emp.lst") FILENAME="emp.lst" } { print... (2 Replies)
Discussion started by: salman4u
2 Replies

7. Shell Programming and Scripting

Extracting information from Config files /text processing

Hello All, This is my first post on this forums, which I consider one of the best of its kind. The reason for my post is that I want to export some information form Nagios configuration files to a DB. I know that there are other tools available to do this, like NDO, monarch, etc... But I want to... (3 Replies)
Discussion started by: oconmx
3 Replies

8. Shell Programming and Scripting

Checking for a control file before processing a data file

Hi All, I am very new to Shell scripting... I got a requirement. I will have few text files(data files) in a particular directory. they will be with .txt extension. With same name, but with a different extension control files also will be there. For example, Sample_20081001.txt is the data... (4 Replies)
Discussion started by: purna.cherukuri
4 Replies

9. Shell Programming and Scripting

Have a shell script check for a file to exist before processing another file

I have a shell script that runs all the time looking for a certain type of file and then it processes the file through a series of other scripts. The script is watching a directory that has files uploaded to it via SFTP. It already checks the size of the file to make sure that it is not still... (3 Replies)
Discussion started by: heprox
3 Replies

Featured Tech Videos