Grep only words containing specific string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep only words containing specific string
# 1  
Old 01-25-2019
Grep only words containing specific string

Hello,
I have two files. All urls are space seperated.

source
Code:
http://xx.yy.zz http://df.ss.sd.xz http://09.09.090.01
http://11.22.33 http://canada.xx.yy http://01.02.03.04 
http://33.44.55 http://98.87.76.65 http://russia.xx.zz
http://aa.tt.xx.zz http://1w.2e.3r.4t http://china.rr.tt

readfile
Code:
canada
87.76
2e
df

Expected output
Code:
http://canada.xx.yy
http://98.87.76.65
http://1w.2e.3r.4t
http://df.ss.sd.xz

What I tried:

Code:
while read -r line
do
grep -Po '$line\K[^ ]+' source
done <readfile > output
exit 0


For this case, could you please let me know how I may get any word containing given string in each line?

Thank you
Boris
# 2  
Old 01-25-2019
Code:
grep -of <(sed 's/.*/\\S*&\\S*/' readfile) source

This User Gave Thanks to nezabudka For This Post:
# 3  
Old 01-25-2019
How about - given your system / shell (which you fail to mention) provides "process substitution" -



Code:
grep -of <(sed 's/^/[^ ]*/; s/$/[^ ]*/' file2) file1
http://df.ss.sd.xz
http://canada.xx.yy
http://98.87.76.65
http://1w.2e.3r.4t

This User Gave Thanks to RudiC For This Post:
# 4  
Old 01-25-2019
Your own approach wasn't too far off. Be aware that single quotes prevent the shell from expanding variables, and that you'd need to extend the regex by adding provision for a prefix (like "http://").

Code:
while read -r line; do grep -Eo "[^ ]*$line[^ ]+" file1; done <file2
http://canada.xx.yy
http://98.87.76.65
http://1w.2e.3r.4t
http://df.ss.sd.xz


Last edited by RudiC; 01-25-2019 at 02:35 PM..
This User Gave Thanks to RudiC For This Post:
# 5  
Old 01-25-2019
Thank You nezabudka and RudiC.
Both work as expected.

Kind regards
Boris
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 multiple words in a file with help of fixed string switch

I have multiple strings in a file which have special character $, when i search strings by ignoring $ with \ using single quotes it returns empty results. My search strings are set char_1($lock) and set new_char_clear_3($unlock) I tried searching with but it returns empty results.However... (3 Replies)
Discussion started by: g_eashwar
3 Replies

2. Shell Programming and Scripting

Grep string in a file and paste next line in a specific way

Hello, I know there are many questions and replies regarding grep command. What I would like to do is a bit different. File A: hello world welcome to my page this is my test site how are you I am fine, thank you where have you been I was in hospital really hope you are fine now Thanks,... (10 Replies)
Discussion started by: baris35
10 Replies

3. Shell Programming and Scripting

Grep and neglect a specific string

Hi, I have a file with "n" number of lines. I need to get rid of a specific line having a specific string from the file. I tried some possibilities but not successful. For ex: in a file named "test" hope should be removed along with the line. ... (8 Replies)
Discussion started by: ricky-row
8 Replies

4. Shell Programming and Scripting

Search string or words in logs without using Grep

I'm in need of some kind of script that will search for a string in each logfile in a directory but we don't want to use GREP. GREP seems to use up to much of our memory causing the server to use up a lot of swap space. Our log files are bigger than 500M on a daily basis. We lately started... (8 Replies)
Discussion started by: senormarquez
8 Replies

5. UNIX for Dummies Questions & Answers

Grep contains specific string

i have file input dsgfdgdfgd> cab |egrep -i '(active|cbu)' 130502-11:34:11 10.133.1.153 9.0j stopfile=/tmp/15959 Trying password from ipdatabase file: /opt/ericsson/amos/moshell/sitefiles/ipdatabase... .. 0 1 CBU1 OFF ON 16HZ ROJ1192209/1 R5E TU8BZ04466... (3 Replies)
Discussion started by: radius
3 Replies

6. UNIX for Dummies Questions & Answers

How to grep cells that contain a specific string?

How do you grep cells that contain a specific string. I tried grep but it greps the whole line and not just the cells. Thanks! (4 Replies)
Discussion started by: evelibertine
4 Replies

7. UNIX for Dummies Questions & Answers

Grep Specific String In CSV

Hi All, I have a csv file like the following: "ABCD2","EFGH2","XXXX","1" "ABCD2","EFGH2","XXXX","2" I want to grep out the row which contains the value of 2 within the 4th column, so then i can use the extracted record to cut up and store into numerous variables. Obviously when... (3 Replies)
Discussion started by: RichZR
3 Replies

8. Programming

How to grep the specific string or user's list from the file

I have a file on UNIX system from where I want to grep the list of all users associated to the particular repository.If the user's list is in single line then I fetch all list but if it is in two separate lines it doesn't.I use the below command a=KESTREL-DEV;b=users;cat access_file|grep... (1 Reply)
Discussion started by: rohit22hamirpur
1 Replies

9. Shell Programming and Scripting

Remove a specific line from grep output string

Dear All I want to search string "1000" from input file and if it found i want remove line that contain 1000 and also remove 3 line above it and 2 line below it. INPUT FILE: BHAT-D 2 aaa ID CODE GS UPDATE MODE LANG MCO MCL NUMPAGES 50 ... (7 Replies)
Discussion started by: jaydeep_sadaria
7 Replies

10. Shell Programming and Scripting

grep - searching for a specific string

ppl, this is my "file" with fields orderno orderdate orderdesc telno street city 1 01/04/2006 abc 123 100 tampa 2 01/04/2006 abc 123 100 tampa 3 01/04/2006 abc 123 100 tampa 4 01/04/2006 abc ... (2 Replies)
Discussion started by: manthasirisha
2 Replies
Login or Register to Ask a Question

Featured Tech Videos