Sponsored Content
Full Discussion: Tricky Shell script
Top Forums Shell Programming and Scripting Tricky Shell script Post 302132221 by namishtiwari on Thursday 16th of August 2007 02:11:53 AM
Old 08-16-2007
CPU & Memory

Quote:
Originally Posted by Perderabo
My script already checks for that..if I understand what you mean...

Code:
#
# check for ascending columns

        nitem=0
        error=0
        set -A cols 0 0 0 0 0 0 0 0 0
        while ((nitem < 9)) ; do
                if ((${ticket1[nitem]})) ; then
                        cols[nitem]=${ticket1[nitem]}
                fi
                if ((${ticket2[nitem]})) ; then
                        ((${ticket2[nitem]} < ${cols[nitem]})) && error=1
                        cols[nitem]=${ticket2[nitem]}
                fi
                if ((${ticket3[nitem]})) ; then
                        ((${ticket3[nitem]} < ${cols[nitem]})) && error=1
                fi
                ((nitem=nitem+1))
        done
        if ((error)) ; then
                echo error line $lineno does not have ascending columns:
                echo $line
                echo "${ticket1[*]}"
                echo "${ticket2[*]}"
                echo "${ticket3[*]}"
                echo
        fi

Note that I explicitly ignore zeros during this check...only non-zeros are required to ascend in columns. I think that is what you wanted.

Yes Perdarabo that is there but i did not understand it fully,how you are using the input file for this.Your script checks for all the things which i need in my script.

suppose my input file is testingdata.txt then how u r going to run this.when i ran the script it tells ./script[3] : data can not open.
Suggest me something.
 

10 More Discussions You Might Find Interesting

1. Windows & DOS: Issues & Discussions

Tricky one...

Here's my problem: I have a laptop running Windows XP Pro with no internal CD or Floppy drives. I want to install Linux on it. I don't care about the Windows XP Pro installation, in fact I would like to install Linux over the entirety of the HD. However I cannot boot from any external CD drive... (1 Reply)
Discussion started by: saabir
1 Replies

2. Shell Programming and Scripting

Tricky Sed

Hello. I am trying to convert occurrences of 'NULL' from a datafile. The 'NULL' occurences appears at this: |NULL| NULL|NULL| NULL|NULL| NULL|NULL| NULL| There should be 52 fields per line. I would like any occurrence of | NULL| or |NULL| to appear as '||' Currently I am using this sed... (2 Replies)
Discussion started by: bestbuyernc
2 Replies

3. Shell Programming and Scripting

Tricky script question

Hi, I'm in the midst of writing a UNIX script that sftp's files to an external host and am stuck with a problem. The problem is that the files created on my server as a order number that correlates to a sequence of directories on the remote host which is where the file should be ftp'ed. ... (3 Replies)
Discussion started by: budrito
3 Replies

4. UNIX for Dummies Questions & Answers

Tricky Quotation Question

Hi, I am at a point in my script where I defined the number of the command line parameter I would like to set a variable equal to: parameter_number=14 I would then like to set a variable equal to the correct parameter: variable=$parameter_number The issue here is that {} is required... (2 Replies)
Discussion started by: msb65
2 Replies

5. Shell Programming and Scripting

Linux: Writing a tricky script to check connectivity

So, first and foremost, I'm having issues with my internet connection. Periodically, the connection drops across the network. The fix is simple enough: restart the modem. However, this gets old when the connection dies out every hour. I can hit my surfboard on 192.168.100.1, and navigate to a... (5 Replies)
Discussion started by: kungfujoe
5 Replies

6. Shell Programming and Scripting

Tricky - Need help on Shell script variables

Hi, I have a requirement in which i have to read a csv file and put data in certain set of variables: File content: VP-DTL-REC-CNT, ,854840,0.00,VP-PAID-AMT, ,0,32280885.17,VP-PAT-PAID-AMT, ,0,9930244.32,VP-PAID-REV-CNT, ,484927,0.00,VP-REJ-CNT, ,369913,0.00, , ,0,0.00, , ,0,0.00, , ,0,0.00, ,... (3 Replies)
Discussion started by: shantoshkumar
3 Replies

7. Shell Programming and Scripting

Tricky data manipulation...

Hi everyone.. I am new here, hello.. I hope this doesn't come across to you folks as a stupid question, I'm somewhat new to scripting :) I'm seeking some help in finding a way to manipulate data output for every two characters - example: numbers.lst contains the following output:... (3 Replies)
Discussion started by: explicit
3 Replies

8. Solaris

Tricky egrep

Hi folks! My first post here. I'm working on a script that retrieves a range of files from a list depending on a range of time. UPDATE: I've seen it could be difficult to read all this thing, so I'll make a summarize it.. How come I do this and take a result.. grep "..\:.." lista.new |... (4 Replies)
Discussion started by: kl0x
4 Replies

9. Shell Programming and Scripting

Tricky sed required

Hi All I need to put some sed together for a task and its a bit advanced for me, so I thought I'd ask if anyone here could help. I have a csv file with content like this - "","abcde","","" "'","abcde","","" "","","","1234" "'e'","","","" I need to remove any single quotes that fall... (17 Replies)
Discussion started by: steadyonabix
17 Replies

10. Shell Programming and Scripting

Parsing xml - tricky one...need help!!

Hi, i am new to linux programming fraternity but looks like starting with a big thing... yes..xml parsing (it is indeed tough for a beginner like me) so need your kind help... The snippet of xml looks like: <snapshot> <tag1> <key>1234</key> <keytype>abcd</keytype> </tag1> <tag2>... (11 Replies)
Discussion started by: rookie2014
11 Replies
UNPACK(3PVM)							  PVM Version 3.4						      UNPACK(3PVM)

NAME
pvm_unpack - Unpack the active message buffer into arrays of prescribed data type. SYNOPSIS
C int info = pvm_unpackf( const char *fmt, ... ) int info = pvm_upkbyte( char *xp, int nitem, int stride) int info = pvm_upkcplx( float *cp, int nitem, int stride) int info = pvm_upkdcplx( double *zp, int nitem, int stride) int info = pvm_upkdouble( double *dp, int nitem, int stride) int info = pvm_upkfloat( float *fp, int nitem, int stride) int info = pvm_upkint( int *ip, int nitem, int stride) int info = pvm_upkuint( unsigned int *ip, int nitem, int stride ) int info = pvm_upkushort( unsigned short *ip, int nitem, int stride ) int info = pvm_upkulong( unsigned long *ip, int nitem, int stride ) int info = pvm_upklong( long *ip, int nitem, int stride) int info = pvm_upkshort( short *jp, int nitem, int stride) int info = pvm_upkstr( char *sp ) Fortran call pvmfunpack( what, xp, nitem, stride, info ) PARAMETERS
fmt Printf-like format expression specifying what to pack. (See discussion) nitem The total number of items to be unpacked (not the number of bytes). stride The stride to be used when packing the items. For example, if stride = 2 in pvm_upkcplx, then every other complex number will be unpacked. xp Pointer to the beginning of a block of bytes. Can be any data type, but must match the corresponding pack data type. cp Complex array at least nitem*stride items long. zp Double precision complex array at least nitem*stride items long. dp Double precision real array at least nitem*stride items long. fp Real array at least nitem*stride items long. ip Integer array at least nitem*stride items long. jp Integer*2 array at least nitem*stride items long. sp Pointer to a null terminated character string. what Integer specifying the type of data being unpacked. what options STRING 0 REAL4 4 BYTE1 1 COMPLEX8 5 INTEGER2 2 REAL8 6 INTEGER4 3 COMPLEX16 7 info Integer status code returned by the routine. Values less than zero indicate an error. DESCRIPTION
Each of the pvm_upk* routines unpacks an array of the given data type from the active receive buffer. The arguments for each of the rou- tines are a pointer to the array to be unpacked into, nitem which is the total number of items to unpack, and stride which is the stride to use when unpacking. An exception is pvm_upkstr() which by definition unpacks a NULL terminated character string and thus does not need nitem or stride argu- ments. The Fortran routine pvmfunpack( STRING, ... ) expects nitem to be the number of characters in the string and stride to be 1. If the unpacking is successful, info will be 0. If some error occurs then info will be < 0. A single variable (not an array) can be unpacked by setting nitem = 1 and stride = 1. The routine pvm_unpackf() uses a printf-like format expression to specify what and how to unpack data from the receive buffer. All vari- ables are passed as addresses. A BNF-like description of the format syntax is: format : null | init | format fmt init : null | '%' '+' fmt : '%' count stride modifiers fchar fchar : 'c' | 'd' | 'f' | 'x' | 's' count : null | [0-9]+ | '*' stride : null | '.' ( [0-9]+ | '*' ) modifiers : null | modifiers mchar mchar : 'h' | 'l' | 'u' Formats: + means initsend - must match an int (how) in the param list. c pack/unpack bytes d integer f float x complex float s string Modifiers: h short (int) l long (int, float, complex float) u unsigned (int) Future extensions to the what argument in pvmfunpack will include 64 bit types when XDR encoding of these types is available. Meanwhile users should be aware that precision can be lost when passing data from a 64 bit machine like a Cray to a 32 bit machine like a SPARCsta- tion. As a mnemonic the what argument name includes the number of bytes of precision to expect. By setting encoding to PVMRAW (see pvmfinitsend) data can be transferred between two 64 bit machines with full precision even if the PVM configuration is heterogeneous. Messages should be unpacked exactly like they were packed to insure data integrity. Packing integers and unpacking them as floats will often fail because a type encoding will have occurred transferring the data between heterogeneous hosts. Packing 10 integers and 100 floats then trying to unpack only 3 integers and the 100 floats will also fail. EXAMPLES
C: info = pvm_recv( tid, msgtag ); info = pvm_upkstr( string ); info = pvm_upkint( &size, 1, 1 ); info = pvm_upkint( array, size, 1 ); info = pvm_upkdouble( matrix, size*size, 1 ); int count, *iarry; double darry[4]; pvm_unpackf("%d", &count); pvm_unpackf("%*d %4lf", count, iarry, darry); Fortran: CALL PVMFRECV( TID, MSGTAG, INFO ); CALL PVMFUNPACK( INTEGER4, NSIZE, 1, 1, INFO ) CALL PVMFUNPACK( STRING, STEPNAME, 8, 1, INFO ) CALL PVMFUNPACK( REAL4, A(5,1), NSIZE, NSIZE , INFO ) ERRORS
PvmNoData Reading beyond the end of the receive buffer. Most likely cause is trying to unpack more items than were originally packed into the buffer. PvmBadMsg The received message can not be decoded. Most likely because the hosts are heterogeneous and the user specified an incompatible encoding. Try setting the encoding to PvmDataDefault (see pvm_mkbuf). PvmNoBuf There is no active receive buffer to unpack. SEE ALSO
pvm_pack(3PVM) pvm_send(3PVM), pvm_recv(3PVM), pvm_pkmesg(3PVM) 30 August, 1993 UNPACK(3PVM)
All times are GMT -4. The time now is 03:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy