list length


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users list length
# 1  
Old 02-24-2011
list length

Hello,

How can I change this code

a=$(egrep "exp" $logFiles -oh);
aCount=$(egrep "exp" $logFiles -oh| wc -l);

to something like this

a=$(egrep "exp" $logFiles -oh);
aCount = $a| wc -l

What I mean I do not want to execute the egrep twice because it takes a lot of time

Regards
# 2  
Old 02-24-2011
Code:
aCount=$(echo "$a" | wc -l)

# 3  
Old 02-24-2011
Thanks, It worked. But for some reasons I get 1 even though no match was found. Do you know the reason.

---------- Post updated at 12:05 PM ---------- Previous update was at 11:56 AM ----------

Thanks alot, It worked. But for some reasons I get 1 even though no match was found.

Code:
a=$(egrep  "exp" $logFiles -oh);
echo $aCount;
aCount = $(echo"$a"| wc -l);
echo  $aCount;
....
....

This code is executed in side a loop and I get this result
0
1
0
1
Note that a is empty
# 4  
Old 02-24-2011
did you enclose the $a in between double quote ?

Code:
# a=$(grep Data tst)

Code:
# echo $a
<td>Good Data 1 </td> <td>Good Data 2</td> <td>Good Data 3</td> <td>Good Data 1 </td> <td>Good Data 2</td> <td>Good Data 3</td>

Code:
# echo "$a"
  <td>Good Data 1 </td>
  <td>Good Data 2</td>
  <td>Good Data 3</td>
  <td>Good Data 1 </td>
  <td>Good Data 2</td>
  <td>Good Data 3</td>

Oh, and remove the <space> before and after the = sign and add a space after the echo
should be
Code:
aCount=$(echo "$a" | wc -l)

... and NOT:
Code:
aCount = $(echo"$a" | wc -l)

depending on your OS, check if there are no option needed with the echo command like echo -e or echo -n or whatever.
by the way, to troubleshoot your code, you can just add the following line
Code:
echo "a=$a"

just before the
Code:
aCount=$(echo "$a" | wc -l)

So you can check what do $a really contains and see if the 1 0 1 0 1 ... is correct... or not

Last edited by ctsgnb; 02-24-2011 at 01:17 PM..
# 5  
Old 02-24-2011
The problem is that "wc" counts the number of line-feed characters. The echo "$a" line is generating a line-feed even if $a is empty.

Try avoiding the intermediate variable:
Code:
aCount=$(egrep -oh "exp" $logfiles|wc -l)

Also note the normal position of the options parameters on the "egrep" command line. Though your version happens to work for "egrep" in Linux, wandering from the command line described in a "man" page will eventually give you grief.

Also, please stop putting semi-colons at the end of lines. This is unix scripting not Oracle.
# 6  
Old 02-24-2011
Quote:
Originally Posted by methyl
Also, please stop putting semi-colons at the end of lines. This is unix scripting not Oracle.
LOL SmilieSmilieSmilie

Regarding the wc stuff, then

Code:
[[ -z "$a" ]] && aCount=0 || aCount=$(echo "$a" | wc -l)


Last edited by ctsgnb; 02-24-2011 at 01:27 PM..
# 7  
Old 02-24-2011
Thanks Guys for help, and I like SQL

Last edited by fdc2suxs; 02-24-2011 at 01:42 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert variable length record to fixed length

Hi Team, I have an issue to split the file which is having special chracter(German Char) using awk command. I have a different length records in a file. I am separating the files based on the length using awk command. The command is working fine if the record is not having any... (7 Replies)
Discussion started by: Anthuvan
7 Replies

2. Shell Programming and Scripting

Check for length which exceeds specified length in a line

Hi, I have a issue, I need to loop through a comma delimited file and check for the length which exceeds specified length , if Yes truncate the string. But my problem is , I do not have to check for all the fields and the field lenght is not same for all the fields. For ex: Say my line... (9 Replies)
Discussion started by: rashmisb
9 Replies

3. Shell Programming and Scripting

Flat file-make field length equal to header length

Hello Everyone, I am stuck with one issue while working on abstract flat file which i have to use as input and load data to table. Input Data- ------ ------------------------ ---- ----------------- WFI001 Xxxxxx Control Work Item A Number of Records ------ ------------------------... (5 Replies)
Discussion started by: sonali.s.more
5 Replies

4. Shell Programming and Scripting

changing a variable length text to a fixed length

Hi, Can anyone help with a effective solution ? I need to change a variable length text field (between 1 - 18 characters) to a fixed length text of 18 characters with the unused portion, at the end, filled with spaces. The text field is actually field 10 of a .csv file however I could cut... (7 Replies)
Discussion started by: dc18
7 Replies

5. UNIX for Dummies Questions & Answers

List the files whole length is < 5 in a directory

Can some one pls help me Unix command to List the files whole length is < 5 in a directory (4 Replies)
Discussion started by: asappidi
4 Replies

6. Shell Programming and Scripting

Make variable length record a fixed length

Very, very new to unix scripting and have a unique situation. I have a file of records that contain 3 records types: (H)eader Records (D)etail Records (T)railer Records The Detail records are 82 bytes in length which is perfect. The Header and Trailer records sometimes are 82 bytes in... (3 Replies)
Discussion started by: jclanc8
3 Replies

7. UNIX for Dummies Questions & Answers

What the command to find out the record length of a fixed length file?

I want to find out the record length of a fixed length file? I forgot the command. Any body know? (9 Replies)
Discussion started by: tranq01
9 Replies

8. UNIX for Dummies Questions & Answers

Sed working on lines of small length and not large length

Hi , I have a peculiar case, where my sed command is working on a file which contains lines of small length. sed "s/XYZ:1/XYZ:3/g" abc.txt > xyz.txt when abc.txt contains lines of small length(currently around 80 chars) , this sed command is working fine. when abc.txt contains lines of... (3 Replies)
Discussion started by: thanuman
3 Replies

9. Shell Programming and Scripting

creating a fixed length output from a variable length input

Is there a command that sets a variable length? I have a input of a variable length field but my output for that field needs to be set to 32 char. Is there such a command? I am on a sun box running ksh Thanks (2 Replies)
Discussion started by: r1500
2 Replies
Login or Register to Ask a Question