Sponsored Content
Top Forums Shell Programming and Scripting Colum number where value is >0 Post 302978817 by bakunin on Thursday 4th of August 2016 11:29:22 AM
Old 08-04-2016
Quote:
Originally Posted by wisecracker
Code:
NUM_ARRAY=( $( cat /tmp/text ) )
ARRAY_LEN=${#NUM_ARRAY[@]}

This will work with several shells and won't with others. Some shells (honestly, i don't know if bash is among them) have limits on the maximum numbers of elements an array can hold: ksh88 for instance 1023, ksh93 more than that, even if i can't remember how many.

It is usually best to stay as far away as possible from the limits, so i wouldn't use arrays for any data which could even come into the vicinity of 1000, but arguably my scripting style is far too defensive to be optimal. Having had to administrate abour 20k servers worldwide once did that for me: every conceivable nightmare was sure to be encountered on at least half a dozen systems and one gets to take absolutely nothing for granted.

How about this, using shell methods:

Code:
(( iCnt = 1 ))
string="0,0,0,0,0,3,0,0,1,0," # [....]
buf=""
rest="$string"

while [ -n "$rest" ] ; do
     rest="${string#[0-9]*,}"
     buf="${string%,$rest}"

     if (( $buf )) ; then
          echo "Element $iCnt is $buf"
     fi

     (( iCnt = iCnt + 1 ))
     string="$rest"
done


I hope this helps.

bakunin

Last edited by bakunin; 08-04-2016 at 03:03 PM.. Reason: corrected typo
This User Gave Thanks to bakunin For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed or awk to convert text files with recurring headings to rows and colum

I have many text file reports generated by a Information Assurance tool that I need to get into a .CSV format or Excel tab delimited format. I want to use sed or awk to grab all the information in the sample text file below and create column headings:Risk ID, Risk Level, Category, Description, How... (5 Replies)
Discussion started by: Bjoeboo
5 Replies

2. Shell Programming and Scripting

add multiple colum using awk

hi i need help in my script i have a file a.txt 3,4,5,13 6,7,8,45 9,0,1,67 i want to add 2nd and 3rd colum like o/p will be by adding all values of colum2(4+7+0) and colum 3(5+8+11) o/p: colum 2: 11 colum 3: 14 (6 Replies)
Discussion started by: anish19
6 Replies

3. Shell Programming and Scripting

find lines have 2nd colum value greater than 40

i have a file a.txt 12345,20 34567,10 23123,50 123456,45 how to find lines which hav 2nd entry greater than 40 o/p 23123,50 123456,45 pls help to get o/p (5 Replies)
Discussion started by: devesh123
5 Replies

4. Shell Programming and Scripting

sed command to delete points in a certain colum

Dear Unix users, I have a (I think simple) question; I have a file (out.dat) like below, the file contains some line which include 'LOS' string. . LOS 46.5360 91.0220 200708.2515.4900. 5400 64 1100010 . . I would like to delete the points in 4th... (4 Replies)
Discussion started by: mgunduz
4 Replies

5. UNIX for Dummies Questions & Answers

joining files with different rows and colum

Hi all, I have two files: file one (9 rows, 3 columns): A 1 x1 B 2 f1 C 3 f3 D 4 u5 E 5 l9 F 6 h6 G 7 g4 H 8 r4 I 9 s2 file two (4 rows, 1 column): A B (2 Replies)
Discussion started by: anjas
2 Replies

6. Linux

Doubt on vmstat swpd colum

Dear Gurus, When i ran vmstat, i am getting swpd value,but si, and so beneath the swap is o, My doubt what is the difference between these values,i,e swpd and si and so OS is OEL 5.5 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache... (2 Replies)
Discussion started by: dave234
2 Replies

7. Shell Programming and Scripting

Sorting based on a particular colum

Hi, I want a flat file(pipe delimited) to be sorted based on 2nd column only. Below is input file to be sorted. AVERS|K50034|A|Y|N|N|Y|Y|Y|||N|N AVERS|K50035|A|Y|N|N|Y|Y|Y|||N|N... (11 Replies)
Discussion started by: Nikhath
11 Replies

8. Shell Programming and Scripting

Script by row colum

Hi All, how can output file1 to file2 by colum, e.g. $cat file1 1 2 3 $cat file2 aaa bbb ccc ddd eee fff ggg hhh iii then i need new file1 (4 Replies)
Discussion started by: aav1307
4 Replies

9. Shell Programming and Scripting

awk to find number in a field then print the line and the number

Hi I want to use awk to match where field 3 contains a number within string - then print the line and just the number as a new field. The source file is pipe delimited and looks something like 1|net|ABC Letr1|1530||| 1|net|EXP_1040 ABC|1121||| 1|net|EXP_TG1224|1122||| 1|net|R_North|1123|||... (5 Replies)
Discussion started by: Mudshark
5 Replies

10. Shell Programming and Scripting

Vlookup using awk without exact match for two colum input

Source file 1 335 R1-snapfound 0098F RDFType:R1 R2-Dev R2-snapfound ,010C0 RemoteSymmetrixID:345 335 R1-snapfound 00990 RDFType:R1 R2-Dev R2-snapfound ,010C1 RemoteSymmetrixID:345 335 R1-snapfound 009C0 RDFType:R1 R2-Dev R2-snapfound ,009C1 RemoteSymmetrixID:345 335 R1-snapfound 009C1... (5 Replies)
Discussion started by: ranjancom2000
5 Replies
ERR_error_string(3)						      OpenSSL						       ERR_error_string(3)

NAME
ERR_error_string, ERR_error_string_n, ERR_lib_error_string, ERR_func_error_string, ERR_reason_error_string - obtain human-readable error message SYNOPSIS
#include <openssl/err.h> char *ERR_error_string(unsigned long e, char *buf); char *ERR_error_string_n(unsigned long e, char *buf, size_t len); const char *ERR_lib_error_string(unsigned long e); const char *ERR_func_error_string(unsigned long e); const char *ERR_reason_error_string(unsigned long e); DESCRIPTION
ERR_error_string() generates a human-readable string representing the error code e, and places it at buf. buf must be at least 120 bytes long. If buf is NULL, the error string is placed in a static buffer. ERR_error_string_n() is a variant of ERR_error_string() that writes at most len characters (including the terminating 0) and truncates the string if necessary. For ERR_error_string_n(), buf may not be NULL. The string will have the following format: error:[error code]:[library name]:[function name]:[reason string] error code is an 8 digit hexadecimal number, library name, function name and reason string are ASCII text. ERR_lib_error_string(), ERR_func_error_string() and ERR_reason_error_string() return the library name, function name and reason string respectively. The OpenSSL error strings should be loaded by calling ERR_load_crypto_strings(3) or, for SSL applications, SSL_load_error_strings(3) first. If there is no text string registered for the given error code, the error string will contain the numeric code. ERR_print_errors(3) can be used to print all error codes currently in the queue. RETURN VALUES
ERR_error_string() returns a pointer to a static buffer containing the string if buf == NULL, buf otherwise. ERR_lib_error_string(), ERR_func_error_string() and ERR_reason_error_string() return the strings, and NULL if none is registered for the error code. SEE ALSO
err(3), ERR_get_error(3), ERR_load_crypto_strings(3), SSL_load_error_strings(3) ERR_print_errors(3) HISTORY
ERR_error_string() is available in all versions of SSLeay and OpenSSL. ERR_error_string_n() was added in OpenSSL 0.9.6. 0.9.7a 2000-09-14 ERR_error_string(3)
All times are GMT -4. The time now is 11:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy