Help with script - GREP


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with script - GREP
# 1  
Old 08-03-2015
Help with script - GREP

Hallo gentlemen,

i've a problem removing lines from txt file. To make it simple, here is an example:

TEXT1.TXT --- contents:

Code:
9.9.9.9 geek.net
1.1.1.1 geek.com
2.2.2.2 leet.net

TEXT2.TXT --- contents:

Code:
geek.com
coolbar.org

I simply do:

Code:
cat text1.txt | grep -f text2.txt > final.txt

but it returns a 0 bytes file. In the sample above all i want to do is remove all the lines that contains the strings defined in text2.txt

Since yesterday I used fgrep succesfully (which, AFAIK is the same as grep -f). Any thoughts/help/suggestion?

Thx in advance

Last edited by mirkocosta; 08-03-2015 at 06:33 AM..
# 2  
Old 08-03-2015
Try:
Code:
grep -f text2.txt text1.txt > final.txt

And for next times, please use code tags as you agreed by the forum rules.

hth
This User Gave Thanks to sea For This Post:
# 3  
Old 08-03-2015
Quote:
Originally Posted by sea
Try:
Code:
grep -f text2.txt text1.txt > final.txt

And for next times, please use code tags as you agreed by the forum rules.

hth
Fixed (the post). Thanks for the help, I'll try.
Edit: not working. The lines aren't deleted... what's wrong?

Last edited by mirkocosta; 08-03-2015 at 06:47 AM.. Reason: Not working for me... :-(
# 4  
Old 08-03-2015
final.txt contains the entries provided by text2.txt and were found in text1.txt, which is geek.com only.

The looks for me:
Code:
0 ~/tmp$ cat text1.txt 
9.9.9.9 geek.net
1.1.1.1 geek.com
2.2.2.2 leet.net

0 ~/tmp $ cat text2.txt 
geek.com
coolbar.org

0 ~/tmp $ grep -f text2.txt text1.txt > final.txt

0 ~/tmp $ cat final.txt 
1.1.1.1 geek.com

Or did you talk about something different?
This User Gave Thanks to sea For This Post:
# 5  
Old 08-03-2015
No, the fact is that strangely I achieved what I want by adding -v.
Do not ask me why, but with -v (excluding) I got what I want. Thanks for the support btw.
# 6  
Old 08-03-2015
Note: Even though this will work in most of the cases, there is the potential for false matches, since the . (dot) is interpreted as any character in grep's regular expressions..
This could be improved somewhat using string matches with the -F operator:
Code:
grep -vFf text2.txt text1.txt

But then there could still be partial matches and one would have to do something like this, using bash/ksh93 process substitution:
Code:
grep -vFf <(sed 's/^/ /' text2.txt) text1.txt

Although even that would still not be 100% sure.
To achieve that we would need to use something like this:
Code:
grep -vf <(sed 's/^/[[:blank:]]/; s/\./\\./g; s/$/$/' text2.txt) text1.txt

--
A better option would be to use awk, using exact string matching of fields:
Code:
awk 'NR==FNR{A[$1]; next} !($2 in A)' text2.txt text1.txt


Last edited by Scrutinizer; 08-03-2015 at 09:31 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 7  
Old 08-03-2015
Thanks for replying.
Just for curiosity, which of those method is the fastest?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grep within script

Hi, I found script which compare ciphers with openssl and return back all result in "YES" (for matching) and "NO" (for no match) I want to result only "YES" part which can be achieved using grep but not sure how and where to place in below script" Script:... (1 Reply)
Discussion started by: khuharshree
1 Replies

2. Shell Programming and Scripting

Grep Script

Hi, New to scripting and looking for some help. I am trying to write a script that will search a specified directory for any new or modified files within the last 7 days and display the results. This will be ran daily and emailed? Thanks (18 Replies)
Discussion started by: Con592
18 Replies

3. Shell Programming and Scripting

Inconsistent `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l`

i have this line of code that looks for the same file if it is currently running and returns the count. `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l` basically it is assigned to a variable ISRUNNING=`ps -eaf -o args | grep -i sfs_pcard_load_file.ksh |... (6 Replies)
Discussion started by: wtolentino
6 Replies

4. UNIX for Dummies Questions & Answers

grep IP script

Hello, I have a command and would like to make that as a script. How do I do that? my command is: grep -Eo +\.+\.+\.+. and i want to have that like grepscript.sh x.txt > IP.txt Can somebody help me? (3 Replies)
Discussion started by: eightball
3 Replies

5. Shell Programming and Scripting

script use min resource ( grep grep)

Hi i wrote script use it as watchdog ( i mean it check another program (pooya) whenever that was killed (closed or crashed) it run another script (pooya_start.sh) to start it, this script work fine and do the job for me , i need help of an expert to tell me (exact command) how to change this... (8 Replies)
Discussion started by: pooyair
8 Replies

6. Shell Programming and Scripting

How to grep sql error in shell script and exit the script?

I need help in the following script. I want to grep the sql errors insert into the error table and exit the shell script if there is any error, otherwise keep running the scripts. Here is my script #!/bin/csh -f source .orapass set user = $USER set pass = $PASS cd /opt/data/scripts echo... (2 Replies)
Discussion started by: allinshell99
2 Replies

7. UNIX for Dummies Questions & Answers

trying to grep the first few lines of a continuos script, and exit the script anyidea

Hi. I am trying to extract the output of the first few lines of a continuos sh script. The when i run it, i wont to grep the the first 20 lines of it for an entry and basically do a crtl z out of it or to that effect, and output the results to a text file. I basically want to script... (5 Replies)
Discussion started by: k00061804
5 Replies

8. Shell Programming and Scripting

Grep within a script

Hi, I am new to this - I have a unix command (below) that I would like to make automated. I would like the script to run the below command line but would like user input for '\' and '\' as these values will change depending on what i'm searching for. Is this possible? if so please help. ... (13 Replies)
Discussion started by: dnash
13 Replies

9. UNIX for Dummies Questions & Answers

grep script

hi guys, i was hoping you could help me out with the following im designing a help site for my work colleagues and would like a little script which would do a grep to check if an application is running on unix for example this is what i do on unix ps -ef | grep mqm and this tells me if... (4 Replies)
Discussion started by: drchris
4 Replies

10. UNIX for Advanced & Expert Users

grep from a script...

This is an extract from a script that i am trying to run. for tim in "2005:00:" "2005:01:" "2005:02:" "2005:03:" "2005:04:" "2005:05:"; do FormString="$tim" echo "grep '$FormString' access.10Aug-1201AM" count=`grep "$FormString" access.10Aug-1201AM | wc -l` ... (1 Reply)
Discussion started by: hamsasal
1 Replies
Login or Register to Ask a Question