parsing text three fields at a time


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting parsing text three fields at a time
# 1  
Old 10-12-2009
parsing text three fields at a time

I'm programming in csh and I have a text file with hundreds of entries seperated only by spaces. I want to access three fields at a time (as each data set has three components) so that I can send these values to a different routine as three variables until every trio of values in the text file has been processed. The problem is I don't seem to have permission to use the 'read' or 'open' commands on my system (they aren't in my path or I can't copy them into my path because of permissions).

I tried creating an array: set temp = `cat file.txt` but then I can't figure out how to iterate through the array to get three values from it at once without "read" or "open" in a while loop...help? Once again, I'm pretty sure "read" and "open" aren't being recognized as commands.

When I try foreach line ($temp) it only references each individual entry and not a full line.
# 2  
Old 10-12-2009
Hi.

For the "three fields at a time" bit:

Code:
xargs -n3 < input_file

This should be shell in-specific.

What exactly do you want to do with the three fields?
# 3  
Old 10-12-2009
Quote:
Originally Posted by scottn
Hi.

For the "three fields at a time" bit:

Code:
xargs -n3 < input_file

This should be shell in-specific.

What exactly do you want to do with the three fields?

I just want to take the text file which is full of numbers and passing the values (three at a time) into variables that I will use as arguments to pass into a function within the loop. I just don't know how to iterate through the file three fields/numbers at a time to assign every three numbers to x, y, and z variables. I hope I am making sense...


So the file would look something like this:

decimalnumber1 decimalnumber2 decimalnumber3 decimalnumber4 decimalnumber5 decimalnumber6 decimalnumber7 decimalnumber8 decimalnumber9 decimalnumber10...etc.

where decimalnumber1 decimalnumber2 decimalnumber3 need to be

x = decimalnumber1
y = decimalnumber2
z = decimalnumber3

and then decimalnumber4 decimalnumber5 decimalnumber6 need to be

x = decimalnumber4
y = decimalnumber5
z = decimalnumber6


and so on.
# 4  
Old 10-12-2009
Code:
function my_func {
  echo x is $1
  echo y is $2
  echo z is $3
}

xargs -n3 < input_file | while read x y z; do
  my_func $x $y $z
done


x is decimalnumber1
y is decimalnumber2
z is decimalnumber3
x is decimalnumber4
y is decimalnumber5
z is decimalnumber6
x is decimalnumber7
....


Last edited by Scott; 10-12-2009 at 08:37 PM.. Reason: changed "my_func() {" to "function my_func {" for no particular reason, except I prefer it!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Getting the current time from a website and parsing date

I am trying to work on a script to grab the UTC time from a website So far I was able to cobble this together. curl -s --head web-url | grep ^Date: | sed 's/Date: //g' Which gives me the result I need. Wed, 06 Dec 2017 21:43:50 GMT What I need to is extract the 21:43:50 and convert... (4 Replies)
Discussion started by: allisterB
4 Replies

2. Shell Programming and Scripting

Parsing fields into variables

A record contains 50 fields separated by "~". I need to assign each of these fields to different variables. Following is the shell script approach I tried. RECORD="FIELD1~FIELD2~FIELD3~FIELD4~FIELD5~...........~FIELD50" VAR1=$(echo ${RECORD} | cut -d"~" -f 1) VAR2=$(echo ${RECORD} | cut... (5 Replies)
Discussion started by: krishmaths
5 Replies

3. Shell Programming and Scripting

Text parsing

Hi All! Is it possible to convert text file: to: ? (6 Replies)
Discussion started by: y77
6 Replies

4. Shell Programming and Scripting

Parsing fields from class list files to use output with newusers command

Hello I am trying to develop a shell script that takes a text file such as this... E-mail@ Soc.Sec.No. *--------Name-----------* Class *School.Curriculum.Major.* Campus.Phone JCC2380 XXX-XX-XXXX CAREY, JULIE C JR-II BISS CPSC BS INFO TECH 412/779-9445 JAC1936 XXX-XX-XXXX... (7 Replies)
Discussion started by: crimputt
7 Replies

5. Shell Programming and Scripting

Help with text/number parsing

Hello I have a file that contains 10 rows as below: "ID" "DP" "ID=GRMZM2G015073_T01" "23.6044288292005" "ID=GRMZM2G119852_T01" "59.7782287606723" "ID=GRMZM2G100242_T02" "61.4167813736184" "ID=GRMZM2G046274_T01" "6.63061838134219" "ID=GRMZM2G046274_T02" ... (5 Replies)
Discussion started by: cs_novice
5 Replies

6. Shell Programming and Scripting

Parsing iostat in real time

I'm trying to write a script that will parse the output of the iostat command in real time and place the output in csv file(s). I do have a programming background, but am relatively new to shell so I'm having difficulties determining how to proceed. The cpu stats will go into one output... (6 Replies)
Discussion started by: fastergrace
6 Replies

7. Shell Programming and Scripting

Parsing text

Hello all, I have some text formatted as follows Name: John doe Company: Address 1: 7 times the headache Address 2: City: my city State/Province: confusion Zip/Postalcode: 12345 and I'm trying to figure out how I could extract the data after the colon so that the result would be ... (6 Replies)
Discussion started by: mcgrailm
6 Replies

8. Shell Programming and Scripting

How to read and compare multiple fields in a column at the same time

Hi, Currently I am coding up a nasty way of reading file input using *cat* rather than *read*. My text input looks like TextA 100 TextB 110 TextC 120 Currently I am using cat |while read line to read the first column and second column fields. cat foo.txt|while read line do ... (1 Reply)
Discussion started by: ahjiefreak
1 Replies

9. Shell Programming and Scripting

parsing data file picking out certain fields

I have a file that is large and is broken up by groups of data. I want to take certain fields and display them different to make it easier to read. Given input file below: 2008 fl01 LAC 2589 polk doal xx 2008q1 mx sect 25698541 Sales 08 Dept group lead1 ... (8 Replies)
Discussion started by: timj123
8 Replies

10. Shell Programming and Scripting

combining fields in two text fields

Can someone tell me how to do this using sed, awk, or any other basic shell scripting? Basically I have two text files with the following contained in each file: File A: a b c d e f g h i File B: 1 2 3 I want the final outcome to look like this: a b c 1 d e f 2 g h i 3 How... (3 Replies)
Discussion started by: shocker
3 Replies
Login or Register to Ask a Question