grep string from a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting grep string from a file
# 1  
Old 08-31-2010
grep string from a file

hi everyone,

1.txt
Code:
12
34
56

2.txt
Code:
456----aa
abc;b;b;b
34;a;a;a;a

output is
Code:
456----aa
34;a;a;a;a

my code is: tmp.txt
Code:
#!/usr/bin/perl
use strict;
use warnings;

my $tmp;
open(FH,'1.txt') or die "$!";
while(<FH>){
        chomp;
        $tmp = `grep "$_" 2.txt`;
        if ($tmp ne '') {
                print "$tmp";
        }
}
close FH;

it works, but the problem you image 1.txt has 30k lines, 2.txt has many many k lines, this script is very low using `grep`.
Please advice, any simple way. Thanks
# 2  
Old 08-31-2010
Try:
Code:
grep -f 1.txt 2.txt

This User Gave Thanks to zaxxon For This Post:
# 3  
Old 08-31-2010
Quote:
Originally Posted by zaxxon
Try:
Code:
grep -f 1.txt 2.txt

ha~~~ Smilie so simple!!!
Thanks

---------- Post updated at 03:24 AM ---------- Previous update was at 03:15 AM ----------

err...
the line of code is simple, but actually when i run my two big files, it takes the same amout of time compare with the original script, and it takes more memory. Smilie
# 4  
Old 08-31-2010
You can try if fgrep will be faster.
This User Gave Thanks to zaxxon For This Post:
# 5  
Old 08-31-2010
Quote:
Originally Posted by zaxxon
You can try if fgrep will be faster.
Smilie:
the script by using grep need more than 5 mins, but fgrep takes just 1 second Smilie: still cannot believe fgrep is so fast than grep.
# 6  
Old 08-31-2010
Just for the record, I think you two mean grep -f, not fgrep ..
# 7  
Old 08-31-2010
Quote:
Originally Posted by Scrutinizer
Just for the record, I think you two mean grep -f, not fgrep ..
assume 1.txt has 33k lines, 2.txt has 20k lines (each line has many many fields)
if "grep -f 1.txt 2.txt", it took me 5 mins to get the result, but if "fgrep -f 1.txt 2.txt", it took just a second to get the same result.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace string of a file with a string of another file for matches using grep,sed,awk

I have a file comp.pkglist which mention package version and release . In 'version change' and 'release change' line there are two versions 'old' and 'new' Version Change: --> Release Change: --> cat comp.pkglist Package list: nss-util-devel-3.28.4-1.el6_9.x86_64 Version Change: 3.28.4 -->... (1 Reply)
Discussion started by: Paras Pandey
1 Replies

2. Shell Programming and Scripting

Grep string in files and list file names that contain the string

Hi, I have a list of zipped files. I want to grep for a string in all files and get a list of file names that contain the string. But without unzipping them before that, more like using something like gzcat. My OS is: SunOS test 5.10 Generic_142900-13 sun4u sparc SUNW,SPARC-Enterprise (8 Replies)
Discussion started by: apenkov
8 Replies

3. Shell Programming and Scripting

grep exact string from files and write to filename when string present in file

I am attempting to grep an exact string from a series of files within a directory and append that output to the filename when it is present in the file. I've been after this all day with no luck. Thanks for your help in advance :wall:. (4 Replies)
Discussion started by: JC_1
4 Replies

4. Shell Programming and Scripting

grep a string in a file

Hi , i'm trying to create a code for the belwo scenario. i have a data in a file file.txt like below. ram dept comp shyam field comp Now i need write a code to find the string which is always 2 lines before the string "comp" Can you please help me in this. Thanks in advance (15 Replies)
Discussion started by: p.bhaskar
15 Replies

5. Shell Programming and Scripting

Grep a string from input file and delete next three lines including the line contains string in xml

Hi, 1_strings file contains $ cat 1_strings /home/$USER/Src /home/Valid /home/Review$ cat myxml <projected value="some string" path="/home/$USER/Src"> <input 1/> <estimate value/> <somestring/> </projected> <few more lines > <projected value="some string" path="/home/$USER/check">... (4 Replies)
Discussion started by: greet_sed
4 Replies

6. UNIX for Dummies Questions & Answers

How to grep string from nohup.out file

Hi, I have one shell script, which run another one script inside in nohup mode. I want to search one string from the nohyup.out file in the same mail shell script itself .Can anyone help me?? Please find the code below: total_ear=`cd ear ; ls *.ear | wc -l | tr -d ' '` for ear in `cd ear ; ls... (0 Replies)
Discussion started by: ckchelladurai
0 Replies

7. Shell Programming and Scripting

If else - grep a string in a file

Hi all, I would want to recieve notification only if there are sessions block in our databases. This is my script, but it's not working. No matter what is the contents in the $OUTFILE, I get emails. /usr/bin/cat $OUTFILE | read selected if then echo "No session is blocked" else ... (7 Replies)
Discussion started by: *Jess*
7 Replies

8. Shell Programming and Scripting

How to grep a string in todays file

Hello guys - I am new to Unix. I am trying to understand how to grep a perticular string in todays file? I am trying this syntax but not getting what I am looking for: % grep `date '+%d/%b/%Y'` For instance there are 2 files generated today with same data. I am trying to find them and... (21 Replies)
Discussion started by: DallasT
21 Replies

9. UNIX for Dummies Questions & Answers

Grep and count the string in a file.

Hi, I have to grep a word 'XYZ' from 900 files ( from 2007 till date), take its count month wise. The output should display month, count , word 'XYZ' . I tried searching the forum for solution but could find any. I would apprieciate if any one can help me asap .... Many Thanks:) (12 Replies)
Discussion started by: vikram2008
12 Replies

10. Shell Programming and Scripting

how to grep for string in log file

Hi Im running a backup scriptwhich creates a log file how do grep for the string in the logfile so the backup script can continue to next stage otherwise it will exit i.e 12:32:53 INF - Client completed sending data for backup 12:33:02 INF - Backup by root on client lonbob04bak using... (4 Replies)
Discussion started by: eb222
4 Replies
Login or Register to Ask a Question