Sponsored Content
Top Forums Shell Programming and Scripting Using grep with test and without using [[ ]] Post 303029199 by apmcd47 on Wednesday 23rd of January 2019 05:48:33 AM
Old 01-23-2019
This suggestion relies on bash parameter expansion and test, and gets rid of the need for grep altogether. On the down side you need an intermediary variable:
Code:
zzz=${INT#-}                  # removes the negative sign, if it exists
if test -z "${zzz//[0-9]/}"   # removes all digits; resulting string should be zero length
then 
   test ${INT} -lt 0 && printf "%s is negative\n" ${INT}
   test ${INT} -eq 0 && printf "%s is zero\n" ${INT}
   test ${INT} -gt 0 && printf "%s is positive\n" ${INT}
fi

Naturally the ${param//string/replacement} construct isn't POSIX-compliant.

Another alternative to using grep is expr:
Code:
expr "$INT" : '-\?[0-9][0-9]*$'

but while that works with GNU expr, the Solaris versions (there are FOUR versions on my Sol 10 system!) do not accept the \? construct.

Andrew
These 2 Users Gave Thanks to apmcd47 For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using grep in a test/if statement

Okay, well this is more or less my first attempt at writing a shell script. Anyways, here's my code: cd ${PATH} if then rm ${FILE} ./anotherScript else exit 1 fi exit 1 Anyways, it's a pretty simple script that is supposed to search for the... (4 Replies)
Discussion started by: cbo0485
4 Replies

2. UNIX for Dummies Questions & Answers

Unix grep/test command

Hello, i have a script which checks if the user entered 8 numeric characters in the form of YYYYMMDD (birth date). If the user entered any non numeric characters, an error will be displayed: # Check to see if the 8 characters are all numbers # If not show error essage # And prompt user... (4 Replies)
Discussion started by: netmaster
4 Replies

3. Shell Programming and Scripting

Using grep inside a test

Hi, I want to use grep inside a test statement, but I am getting an error message. Two variables testvarNum=5 testvarNonNum=x echo $testvarNum | grep * The result of this is as follows: 5 However, when I try the following (i.e. to test if the variable is numeric or non-numeric):... (3 Replies)
Discussion started by: dkieran
3 Replies

4. Shell Programming and Scripting

Test on string containing spacewhile test 1 -eq 1 do read a $a if test $a = quitC then break fi d

This is the code: while test 1 -eq 1 do read a $a if test $a = stop then break fi done I read a command on every loop an execute it. I check if the string equals the word stop to end the loop,but it say that I gave too many arguments to test. For example echo hello. Now the... (1 Reply)
Discussion started by: Max89
1 Replies

5. Shell Programming and Scripting

grep functions, how to test if succeeded

Hello ...again. I am stuck on this part, I have a loop with processes an operations file. and calls different functions depending on what is in loop, which processes a database file... #so far my add function works as intended add() { ...blah blah; } # delete is kinda working... (13 Replies)
Discussion started by: gcampton
13 Replies

6. Shell Programming and Scripting

How to check weather a string is like test* or test* ot *test* in if condition

How to check weather a string is like test* or test* ot *test* in if condition (5 Replies)
Discussion started by: johnjerome
5 Replies

7. Shell Programming and Scripting

searching fileextentions (suffix) with grep and/or test

Hello, I have a problem. I will search files on fileextentions (suffix). It can with the command find, but I will do it with the commands grep and/or test. When i start the script I will see all files with that extention (suffix). Can anyone help me, please? Thanks! Regards, Arjan... (4 Replies)
Discussion started by: arjanengbers
4 Replies

8. Shell Programming and Scripting

If test grep.... always returns 0 status

Hi all. I am trying to compare and filter two files. I have a bigfile.txt of names and ids and a smallfile.txt of ids only. What I am trying to do is use a while read loop to read the ids in the bigfile and then echo the name and id only if the id exists in the small file. Basically, I'm trying to... (5 Replies)
Discussion started by: jameswatson3
5 Replies

9. Shell Programming and Scripting

Grep/print/ a test file

cat abc.txt Filename: SHA_AED_Monthly_SNR_20150331.txt.gz Data Format: ASCII with carriage returns and linefeeds Compression: GZIP GZIP Bytes: 36893068 Unzipped Bytes : 613794510 Records: 851310 Record Length: 738 Blocksize: 32472 Filename: SHA_AED_SNR_ChangeLog_20150331.txt.gz Data... (16 Replies)
Discussion started by: dotran
16 Replies

10. UNIX for Beginners Questions & Answers

Is it correct? if test grep EOF $a ...

read a if test grep EOF $a then echo yes file else echo no fi (1 Reply)
Discussion started by: iamsumibisht
1 Replies
VCF-ANNOTATE(1) 						   User Commands						   VCF-ANNOTATE(1)

NAME
vcf-annotate - annotate VCF file, add filters or custom annotations SYNOPSIS
cat in.vcf | vcf-annotate [OPTIONS] > out.vcf DESCRIPTION
About: Annotates VCF file, adding filters or custom annotations. Requires tabix indexed file with annotations. Currently annotates only the INFO column, but it will be extended on demand. OPTIONS
-a, --annotations <file.gz> The tabix indexed file with the annotations: CHR FROM[ TO][ VALUE]+. -c, --columns <list> The list of columns in the annotation file, e.g. CHROM,FROM,TO,-,INFO/STR,INFO/GN. The dash in this example indicates that the third column should be ignored. If TO is not present, it is assumed that TO equals to FROM. -d, --description <file|string> Header annotation, e.g. key=INFO,ID=HM2,Number=0,Type=Flag,Description='HapMap2 membership'. The descriptions can be read from a file, one annotation per line. -f, --filter <list> Apply filters, list is in the format flt1=value/flt2/flt3=value/etc. -h, -?, --help This help message. Filters: + Apply all filters with default values (can be overridden, see the example below). -X Exclude the filter X 1, StrandBias FLOAT Min P-value for strand bias (given PV4) [0.0001] 2, BaseQualBias FLOAT Min P-value for baseQ bias [1e-100] 3, MapQualBias FLOAT Min P-value for mapQ bias [0] 4, EndDistBias FLOAT Min P-value for end distance bias [0.0001] a, MinAB INT Minimum number of alternate bases [2] c, SnpCluster INT1,INT2 Filters clusters of 'INT1' or more SNPs within a run of 'INT2' bases [] D, MaxDP INT Maximum read depth [10000000] d, MinDP INT Minimum read depth [2] q, MinMQ INT Minimum RMS mapping quality for SNPs [10] Q, Qual INT Minimum value of the QUAL field [10] r, RefN Reference base is N [] W, GapWin INT Window size for filtering adjacent gaps [10] w, SnpGap INT SNP within INT bp around a gap to be filtered [10] Example: zcat in.vcf.gz | vcf-annotate -a annotations.gz -d descriptions.txt | bgzip -c >out.vcf.gz zcat in.vcf.gz | vcf-annotate -f +/-a/c=3,10/q=3/d=5/-D -a annotations.gz -d descriptions.txt | bgzip -c >out.vcf.gz Where descriptions.txt contains: key=INFO,ID=GN,Number=1,Type=String,Description='Gene Name' key=INFO,ID=STR,Number=1,Type=Integer,Description='Strand' vcf-annotate 0.1.5 July 2011 VCF-ANNOTATE(1)
All times are GMT -4. The time now is 01:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy