04-29-2006
If statement falling over on a null record. Help please.
Okay i've got some code which reads a text file and loops through it and there a few if statements inside where one is failing (the one bolded).
Basically the acc column contains a list of three digit access codes, some though have null records (i.e nothing in the field) so what I want to do is if its not null to carry on to the other loops if it is null to move on to the next record.
I thought -n meant if the value is greater than 0 in length. I.e not null.
When it gets the the first null record i get the following error message
create_matrix_busy.exe: test: argument expected
This is my code so far...
while read line
do
sdate=`echo "$line" | cut -d, -f1`
edate=`echo "$line" | cut -d, -f2`
edate=`echo "$line" | cut -d, -f2`
site=`echo "$line" | cut -d, -f3`
NA=`echo "$line" | cut -d, -f4`
acc=`echo "$line" | cut -d, -f6`
calls=`echo "$line" | cut -d, -f8`
if [ -n ${acc} ]
then
if [ ${calls} -gt 0 ]
then
if [ ${NA} = 'ALL' ]
then
echo ${site},${acc}
elif [ ${NA} = 'NA*' ]
then
echo ${site},NA${acc}
fi
fi
fi
Thanks, the code will do more inside the if statements once i get those working.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
In my ksh script, if the conditions of a if statement are true, then do nothing; otherwise, execute some commands.
How do I write the "do nothing" statement in the following example?
Example:
if (( "$x"="1" && "$y"="a" && "$z"="happy" ))
then
do nothing
else
command
command
fi... (3 Replies)
Discussion started by: april
3 Replies
2. UNIX for Dummies Questions & Answers
Hi,
How do you echo something once when a find statement returns null results?
This is when using mutiple locations and mutiple arguments.
The below find command the inner loop of a nested for loop where the outter loop holds the $args and the inner loop holds the locations.
find... (2 Replies)
Discussion started by: tchoruma
2 Replies
3. Shell Programming and Scripting
I have an input file having 7 fields delimited by ,
eg :
1,ABC,hg,1,2,34,3
2,hj,YU,2,3,4,
3,JU,kl,4,5,7,
4,JK,KJ,3,56,4,5
The seventh field here in some lines is empty, whereas the other lines there is a value.
How do I insert string NULL at this location (7th loc) for these lines where... (8 Replies)
Discussion started by: zilch
8 Replies
4. Shell Programming and Scripting
Dear all,
I have numerous dat files (1.dat, 2.dat...) containing 500 numeric values each. I would like to count them, based on their range and obtain a histogram or a counter.
INPUT:
1.dat
1.3
2.16
0.34
......
2.dat
1.54
0.94
3.13
.....
... (3 Replies)
Discussion started by: chen.xiao.po
3 Replies
5. Shell Programming and Scripting
Hi,
I want to be able to check if a variable is not equal to null. I am using KSH, and am getting this error message when i run this script:
: assignment requires lvalue
The line which is causing the problem is as follows:
if (($SFTP_DESTINATION != '' ));then
if ssh... (6 Replies)
Discussion started by: Jack_Maloney
6 Replies
6. Shell Programming and Scripting
Hi, I need to create weekly files from daily records stored in individual monthly filenames from 1999-2010. my sample file structure is like the ones below:
daily record stored per month:
199901.xyz, 199902.xyz, 199903.xyz, 199904.xyz ...199912.xyz
records inside 199901.xyz (original data... (4 Replies)
Discussion started by: ida1215
4 Replies
7. Shell Programming and Scripting
Hi All,
I have a file which contains lakhs of records
0136812368126 03000 Statement
1237129372189 02321 JIT
0136812368126 05000 terminal
1237129372189 05001 Utilise
Is there an option to delete all lines which fall within the range 05000 to 05999?
I tried... (6 Replies)
Discussion started by: swasid
6 Replies
8. Programming
Hi Guys,
I am having below tables used in oracle
bal
ID BALANCE BAL_DATE
1 -11.71 01-JAN-05 00.00.00
1 -405.71 02-JAN-05 00.00.00
1 -760.71 03-JAN-05 00.00.00
ref_table
PRODUCT EFF_FROM_DATE EFF_TO_DATE TYPE MIN_AMT MAX_AMT CHARGE
12 01-JAN-05 00.00.00 01-JAN-06... (6 Replies)
Discussion started by: rohit_shinez
6 Replies
9. Shell Programming and Scripting
Hi Team,
I have a file abc.dat which is a empty file. But it has null record in first line. I need to identify this unique file and handle it separately.
scenario 1:
abc/dw> wc abc.dat
1 0 1 abc.dat
abc/dw> cat abc.dat
abc/dw>
scenario 2:
abc/dw> wc pqr.dat
0 0 0 pqr.dat... (3 Replies)
Discussion started by: kmanivan82
3 Replies
10. Shell Programming and Scripting
Hi All
My requirement is to find the null values in particular column of a file and reject it in case if it contains null values. But the challenge is that I want a common command which can be used across different file, as the position of the column we need to check for different file may get... (14 Replies)
Discussion started by: ginrkf
14 Replies
LEARN ABOUT MOJAVE
ppi::statement::compound5.18
PPI::Statement::Compound(3) User Contributed Perl Documentation PPI::Statement::Compound(3)
NAME
PPI::Statement::Compound - Describes all compound statements
SYNOPSIS
# A compound if statement
if ( foo ) {
bar();
} else {
baz();
}
# A compound loop statement
foreach ( @list ) {
bar($_);
}
INHERITANCE
PPI::Statement::Compound
isa PPI::Statement
isa PPI::Node
isa PPI::Element
DESCRIPTION
"PPI::Statement::Compound" objects are used to describe all current forms of compound statements, as described in perlsyn.
This covers blocks using "if", "unless", "for", "foreach", "while", and "continue". Please note this does not cover "simple" statements
with trailing conditions. Please note also that "do" is also not part of a compound statement.
# This is NOT a compound statement
my $foo = 1 if $condition;
# This is also not a compound statement
do { ... } until $condition;
METHODS
"PPI::Statement::Compound" has a number of methods in addition to the standard PPI::Statement, PPI::Node and PPI::Element methods.
type
The "type" method returns the syntactic type of the compound statement.
There are four basic compound statement types.
The 'if' type includes all variations of the if and unless statements, including any 'elsif' or 'else' parts of the compound statement.
The 'while' type describes the standard while and until statements, but again does not describes simple statements with a trailing while.
The 'for' type covers the C-style for loops, regardless of whether they were declared using 'for' or 'foreach'.
The 'foreach' type covers loops that iterate over collections, regardless of whether they were declared using 'for' or 'foreach'.
All of the compounds are a variation on one of these four.
Returns the simple string 'if', 'for', 'foreach' or 'while', or "undef" if the type cannot be determined.
TO DO
- Write unit tests for this package
SUPPORT
See the support section in the main module.
AUTHOR
Adam Kennedy <adamk@cpan.org>
COPYRIGHT
Copyright 2001 - 2011 Adam Kennedy.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
perl v5.18.2 2011-02-25 PPI::Statement::Compound(3)