Grep two files: -F flag gives weird output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep two files: -F flag gives weird output
# 1  
Old 11-15-2017
Grep two files: -F flag gives weird output

Hi Members,

I'm confused with grep -F option. Goal is to get all the lines from file2 that have exact gene name from gene list (file one).

File one has list of genes:
Quote:
CR1
PSEN2
GYPC
BIN1
CYP27C1
ERCC3
MAP3K2
PROC
MIR4783
IWS1
File two has lot more information pertinent to genes in file one:
Quote:
19 19256812 19256812 exonic MEF2B,MEF2BNB-MEF2B nonsynonymous SNV
19 19257646 19257646 exonic MEF2B,MEF2BNB-MEF2B nonsynonymous SNV
I use three following commands:

1)
Code:
grep -wf gene file2

Not output. This is expected.

2)
Code:
 grep -Ff gene file2

This gives me both the lines in file2:

Quote:
19 19256812 19256812 exonic MEF2B,MEF2BNB-MEF2B nonsynonymous SNV
19 19257646 19257646 exonic MEF2B,MEF2BNB-MEF2B nonsynonymous SNV
However, there's no gene as MEF2B or MEF2BNB-MEF2B in gene list.

But gene MEF2C is present in gene list.

That means -F options collects anything. Am I understanding this correctly?

3)
Code:
 grep -Fxf gene file2

No output
I guess x looks per line basis

4)

Code:
grep -Fwf gene file2

This matches with grep -wf gene file2

I'm confused which is correct way to get appropriate answer. Data is humongous so I'd not know where I made mistake.

Command one and four look good to go.

Would appreciate any help here.

Last edited by genome; 11-15-2017 at 06:11 PM.. Reason: added fourth command
# 2  
Old 11-15-2017
I get no output from both 1 and 2 and never expected any, I see no possible matches.
# 3  
Old 11-15-2017
I didn't see any either. Not sure what to look for here.
# 4  
Old 11-15-2017
You say MEF2C is in the gene list, but it is not present in the file you provided???

What operating system are you using? The standards don't specify the meaning of a grep -w option. Note also that by some definitions of "word" the line:
Code:
19 19257646 19257646 exonic MEF2B,MEF2BNB-MEF2B nonsynonymous SNV

does not contain the word MEF2BNB-MEF2B, but does the three words MEF2B (twice), MEF2BNB (once), and SNV (once). Are you sure that grep -w is using the same definition of "word" that you are expecting?

Is there by any chance an empty line in your gene file?

Are the files you're processing UNIX text files? (Or, might they be DOS text files?)
This User Gave Thanks to Don Cragun For This Post:
# 5  
Old 11-15-2017
Quote:
Originally Posted by Corona688
I get no output from both 1 and 2 and never expected any, I see no possible matches.
Hi corona,

Why do I get the output for 2:

Quote:
19 19256812 19256812 exonic MEF2B,MEF2BNB-MEF2B nonsynonymous SNV
19 19257646 19257646 exonic MEF2B,MEF2BNB-MEF2B nonsynonymous SNV
I don't understand why I get these lines.
There's no gene "MEF2B" or "MEF2BNB-MEF2B" in gene list.

The output from command 2 is incorrect, that's what bothering me.
# 6  
Old 11-15-2017
What output do you get from the command:
Code:
grep -E 'MEF|SNV' gene

# 7  
Old 11-16-2017
Please answer the questions in Don Cragun's post#4 applying utmost care, esp. checking for the empty line. If that doesn't help, reduce the gene file to a single line representing a single gene and rotate those until we can find some evidence for the "strange" behaviour.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Weird output from ps command

Hi Guys, I am regular Solaris user. I came across a weird problem that puzzled me. Hope you guys can help. I found that process's state(command & arguments) in two different variants of ps command is different. Can anyone explain how is this possible? bash-3.2$ ps -eLo pid,s,comm,args |... (2 Replies)
Discussion started by: brij123
2 Replies

2. HP-UX

[Solved] Weird 'ls -l' output

Hello folks, I've found an HP-UX server with a rare 'ls -l' output. Please see the attached file. Anybody knows how can I change the output to not have this extra tabulations? Thanks in advance! (10 Replies)
Discussion started by: carpannav
10 Replies

3. Shell Programming and Scripting

Weird tail output over ssh

Hello; Am trying to correct the formatting of tail output over ssh. Using the following code: echo "" > $FILE for BOX in $SERVERS do echo "Processing on $BOX" |tee -a $FILE echo "===============================" >> $FILE sudo ssh $BOX 'TERMINAL="vt100" /usr/bin/sh -s' <... (2 Replies)
Discussion started by: delphys
2 Replies

4. Shell Programming and Scripting

Traceroute script weird output

This script is giving weird output #!/bin/bash NETPATH=(`/bin/traceroute -n 4.2.2.2 | awk '{print $2}'`) for i in "${NETPATH}" do echo $i done The output: to 11.11.11.1 1.1.1.1 99.111.208.2 traceroute_test.sh traceroute_test.sh (7 Replies)
Discussion started by: thumbs
7 Replies

5. Shell Programming and Scripting

In bash getting weird output from function ?

My script- result="" times() { echo "inside the times function" result=8 echo "Inside function $result" return $result } result=$(times) echo "the value is "$? echo "the value of result $result" when I run I get this, why the value still remain 0. $ ./func the value is 0 the value... (5 Replies)
Discussion started by: boy18nj
5 Replies

6. UNIX for Dummies Questions & Answers

weird 'ls' output

Hi, Anyone knows why I can't display the contents of my directory and how to fix this? http://i50.tinypic.com/4smfth.jpg Thanks in advance for any advise. Deanne Double post. Continued here. (0 Replies)
Discussion started by: Deanne
0 Replies

7. Shell Programming and Scripting

format of output is weird

hi all, have a ksh script which connects to a database and runs a sql and dumps it to a '.csv' file. The problem is the result is in multiple rows with long spaces in between when it should be just a single line and this screws up the format in the '.csv' file. script is : #!/bin/ksh... (1 Reply)
Discussion started by: cesarNZ
1 Replies

8. Shell Programming and Scripting

weird echo output?

#!/bin/bash INPUT=$1 if then INPUT=0$1 TRACKNUMBER=$INPUT fi TRACKNUMBER=$INPUT echo "Track Number:" $TRACKNUMBER if then echo "File Does Not Exist!: split-track"${TRACKNUMBER}".wav" exit 0 fi CUEFILE="$2" (6 Replies)
Discussion started by: TinCanFury
6 Replies

9. Shell Programming and Scripting

weird behavior of grep -P

I met a problem in using grep -P. There is a text file, temp.txt, whose content is: dddd abc I ran the command: grep -P "\s*abc" temp.txt The result I expected is: abc But, the actual result is: dddd abc Could anyone tell me what is wrong? Thanks. (2 Replies)
Discussion started by: pankai
2 Replies

10. AIX

Weird bootlist output

just setup a new system today - 9117 570, using HMC for console but not partitioned. I installed this system twice. the first time it started off as 5300-00, then updated to ML03. before the update, I believe I mirrored the rootvg, and then altered the bootlist, at that point, the display was... (4 Replies)
Discussion started by: davew1099
4 Replies
Login or Register to Ask a Question