I am using awk as part of and if then else statement. I am trying to have the user enter a gene name and then a variant or variants and have a specific transcript assigned to the variants depending on the gene. Below is my code but the if then else statement is wrong. Basically, the gene name would be the condition that assigns a particular transcript to a variant.
The desired output would be, if the user enters GJB2 as the gene name and then c.283G>A for the variant there is a statement for that condition that saves a file with NM_004004.5:c.283G>A . However if MECP2 is entered as the gene name and c.48delC,c.255G>T are entered as the variants, the a file is saved:
From the syntax of your read statement, I'm assuming you're using bash... But, in bash and in ksh, the way to reference then nth element of an array is ${array[$n]}; using ${array} just gives you the 0th element of the array.
Shell variables (whether they are scalars or arrays) can't be referenced by name in an awk script.
You can't write (overwrite or append) to two files using redirection in the shell or in awk. Either call printf twice (redirecting the output of each to one of your files), or use tee to make a copy in one file while directing the output to the other file.
Why would you invoke awk when there are no calculations being performed; why not just use shell if, for, and printf statements?
I'm surprised that you don' t want to print some kind of diagnostic if the entered gene name is not an empty string is not end, and is not one of your three expected gene names, but this seems to do something similar to what I think you were trying to do:
These 2 Users Gave Thanks to Don Cragun For This Post:
There has to be a way to do this with awk or maybe I'm just focusing on the wrong tool and making this harder than it needs to be.
I'm trying to do a file field lookup/join at a very large scale but the output changes has to change dramatically. I have an input file to do a field lookup from and... (3 Replies)
Hi folks,
I have a scenario to convert the update statements into insert statements using shell script (awk, sed...) or in database using regex.
I have a bunch of update statements with all columns in a file which I need to convert into insert statements.
UPDATE TABLE_A SET COL1=1 WHERE... (0 Replies)
I run my script "switch.sh" repeatedly (within 30 seconds). Each time script is triggered, script itself should kill all previous process.
Here is my code:
for pid in $(ps -fe | grep 'switch.sh' | grep -v grep | awk '{if ($2<$$) print $2}'); do
sudo kill -9 $pid
done
sleep 30
... (6 Replies)
Hi
I have a file with
test test2 1000000657373
test1 test3 1000003849450
test2 test4 test5 100000837474
I cat the file and pipe it to an awk statement like so
cat /tmp/file |awk '{if ($3 ~ "^*$" && $3 > 1024000000) print "/vol/"$1"/"$2;else if ($4 ~ "^*$" && $4 > 1024000000) print... (15 Replies)
hi,
I have a l-column file of more than 10,000 lines with interspersed negative values. What I want to do is add a fixed number (360) everytime a negative value is encountered while leaving the positive ones as is. I need something that will read every line of the file and do the calculation... (3 Replies)
Hi,
I have a data file which contains record count.
So doing wc -l rightfit_balancing_count.dat | awk '{print $1}'] gives me the record count stored in the file.
Now, i want to send a mail from UNIX, if the record count is equal to 0,otherwise it should do nothing.
Any help... (2 Replies)
Having a little trouble with awk and an if statement. I have a test setup which I am trying to only print the records which start with the month 03. Everything I tried, prints everything, even the 02 month
03/23/2010 12:47:51
ga2828
SUBMITTED FROM URL: test123.cgi
show port count
... (2 Replies)
Hi Friends
How do I do two things from one if statement inside awk? I want to run a script and create a new file from the same condition.
awk '{ if ($2 == ""){print " "|"cd /local/test; ./script.ksh"}{cat > ran_true.txt}}' $IN_FILE
Bolded are the two things I want to be done.
Thanks (1 Reply)