10 More Discussions You Might Find Interesting
1. HP-UX
Hi all,
This is my first ever posting, so please be gentle with me :)
I'm trying to write a script in HP-UX which outputs text in different colours, but although I can get the script to output different colours to the screen, I can't get it to write different colours to a file. Take the... (4 Replies)
Discussion started by: neilharvey
4 Replies
2. Shell Programming and Scripting
Hi Everyone,
Long time lurker here. I have a project of bringing every one of our data centers to a newly enforced company standard. Standard naming conventions, domain migrations, etc. So, the people who are setting the standards are providing me with a CSV file. Column 1 has the old... (23 Replies)
Discussion started by: Zaphod_B
23 Replies
3. UNIX for Dummies Questions & Answers
I need to enable set -x in my croned script as at times the script is not returning all data that it should be. This only happens intermittently and as such I would like a means of being able to check what goes wrong.
My question is how to output the debug of set -x to file? (1 Reply)
Discussion started by: rob171171
1 Replies
4. Shell Programming and Scripting
With this script the output to the terminal does not increment. Can anyone tell me what I need to do to get this to increment output to the terminal?
Here is the output
mpath major,minor number
ls: /dev/mapper/mpathp1: No such file or directory
raw device output
253,44
echo raw device... (5 Replies)
Discussion started by: bash_in_my_head
5 Replies
5. Homework & Coursework Questions
Stuck on formatting an output. I want to list 6-99 on the screen, looking something like this:
99 98 97 96 95 94 93 92 91 90
89 88 87 86 85 84 83 82 81 80
and so on down to 6.
So far I am only able to print one value per line.
This is what I have
I have defined x as integer x=99... (2 Replies)
Discussion started by: huckknows
2 Replies
6. Shell Programming and Scripting
I have information in a file called HITS. This file has been populated by the user entering search criteria.
the HITS file contains information:
filname.hits: 123.33.345.66 Fri Nov 26 11.45.56.43 GMT 2006
at the moment i am just displayin the information using cat HITS.
... (3 Replies)
Discussion started by: amatuer_lee_3
3 Replies
7. Shell Programming and Scripting
Newbie question -- any help very much appreciated: I want to be able to get grep (or whatever else would work) to return not only matching lines, but also the original input string:
An example may help: Suppose I have two files data1.txt and data2.txt:
data1.txt
Hello my name is foo.
What... (3 Replies)
Discussion started by: tapmas
3 Replies
8. Shell Programming and Scripting
This is the file am having:
"40","1G1AL55 ",30482,9000
"40","1G1ZT58 ",29098,10600
"40","1G1AL15 ",29222,9400
"46","1G6KD57 ",3083,28400
"46","1G6KD57 ",27909,25200
"49","1G1ZU57 ",16391,13900
"49","1G2ZG58 ",28856,12400
I want to display the output in three files... (23 Replies)
Discussion started by: dave_nithis
23 Replies
9. Shell Programming and Scripting
Ok, lets suppose I have two files like so:
file1
John 5441223
Sandy 113446
Jill 489799
file2
Sandy Tuesday
Jill Friday
John Monday
Is it possible to match records from these two files and output them into one output file? For example, lets suppose I want to output like this:
... (5 Replies)
Discussion started by: Liguidsoul
5 Replies
10. Shell Programming and Scripting
I am using sed for a simple substitution (see command syntax below). Everything works fine except that the last line of the input file does not get written to the output file. Has anyone ever seen this and know of way to force the last line to be written?
I don't know if it's playing a part in... (3 Replies)
Discussion started by: 2reperry
3 Replies
funtablerowput(3) SAORD Documentation funtablerowput(3)
NAME
FunTableRowPut - put Funtools rows
SYNOPSIS
int FunTableRowPut(Fun fun, void *rows, int nev, int idx, char *plist)
DESCRIPTION
The FunTableRowPut() routine writes rows to a FITS binary table, taking its input from an array of user structs that contain column values
selected by a previous call to FunColumnSelect(). Selected column values are automatically converted from native data format to FITS data
format as necessary.
The first argument is the Fun handle associated with this row data. The second rows argument is the array of user structs to output. The
third nrow argument specifies the number number of rows to write. The routine will write nrow records, starting from the location speci-
fied by rows.
The fourth idx argument is the index of the first raw input row to write, in the case where rows from the user buffer are being merged with
their raw input row counterparts (see below). Note that this idx value is has nothing to do with the row buffer specified in argument 1.
It merely matches the row being written with its corresponding (hidden) raw row. Thus, if you read a number of rows, process them, and
then write them out all at once starting from the first user row, the value of idx should be 0:
Ev ebuf, ev;
/* get rows -- let routine allocate the row array */
while( (ebuf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
/* process all rows */
for(i=0; i<got; i++){
/* point to the i'th row */
ev = ebuf+i;
...
}
/* write out this batch of rows, starting with the first */
FunTableRowPut(fun2, (char *)ebuf, got, 0, NULL);
/* free row data */
if( ebuf ) free(ebuf);
}
On the other hand, if you write out the rows one at a time (possibly skipping rows), then, when writing the i'th row from the input array
of rows, set idx to the value of i:
Ev ebuf, ev;
/* get rows -- let routine allocate the row array */
while( (ebuf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
/* process all rows */
for(i=0; i<got; i++){
/* point to the i'th row */
ev = ebuf+i;
...
/* write out the current (i.e., i'th) row */
FunTableRowPut(fun2, (char *)ev, 1, i, NULL);
}
/* free row data */
if( ebuf ) free(ebuf);
}
The final argument is a param list string that is not currently used. The routine returns the number of rows output. This should be equal
to the value passed in the third nrow</B argument.
When FunTableRowPut() is first called for a given binary table, Funtools checks to see of the primary header has already been written
(either by writing a previous row table or by writing an image.) If not, a dummy primary header is written to the file specifying that an
extension should be expected. After this, a binary table header is automatically written containing information about the columns that
will populate this table. In addition, if a Funtools reference handle was specified when this table was opened, the parameters from this
Funtools reference handle are merged into the new binary table header.
In a typical Funtools row loop, you read rows using FunTableRowGet()() and write rows using FunTableRowPut(). The columns written by FunT-
ableRowPut()() are those defined as writable by a previous call to FunColumnSelect(). If that call to FunColumnSelect also specified
merge=[update|replace|append], then the entire corresponding raw input row record will be merged with the output row according to the merge
specification (see FunColumnSelect() above).
A call to write rows can either be done once, after all rows in the input batch have been processed, or it can be done (slightly less effi-
ciently) one row at a time (or anything in between). We do recommend that you write all rows associated with a given batch of input rows
before reading new rows. This is required if you are merging the output rows with the raw input rows (since the raw rows are destroyed
with each successive call to get new rows).
For example:
Ev buf, ev;
...
/* get rows -- let routine allocate the row array */
while( (buf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
/* point to the i'th row */
ev = buf + i;
.... process
}
/* write out this batch of rows */
FunTableRowPut(fun2, buf, got, 0, NULL);
/* free row data */
if( buf ) free(buf);
}
or
Ev buf, ev;
...
/* get rows -- let routine allocate the row array */
while( (buf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
/* process all rows */
for(i=0; i<got; i++){
/* point to the i'th row */
ev = buf + i;
... process
/* write out this batch of rows with the new column */
if( dowrite )
FunTableRowPut(fun2, buf, 1, i, NULL);
}
/* free row data */
if( buf ) free(buf);
}
Note that the difference between these calls is that the first one outputs got rows all at once and therefore passes idx=0 in argument
four, so that merging starts at the first raw input row. In the second case, a check it made on each row to see if it needs to be output.
If so, the value of idx is passed as the value of the i variable which points to the current row being processed in the batch of input
rows.
As shown above, successive calls to FunTableRowPut() will write rows sequentially. When you are finished writing all rows in a table, you
should call FunFlush() to write out the FITS binary table padding. However, this is not necessary if you subsequently call FunClose() with-
out doing any other I/O to the FITS file.
Note that FunTableRowPut() also can be called as FunEventsPut(), for backward compatibility.
SEE ALSO
See funtools(7) for a list of Funtools help pages
version 1.4.2 January 2, 2008 funtablerowput(3)