LinuxQuestions.org
Support LQ: Use code LQ3 and save $3 on Domain Registration
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 01-07-2008, 05:01 PM   #1
new_2_unix
LQ Newbie
 
Registered: Oct 2007
Posts: 26

Rep: Reputation: 15
how to use grep to print just the matching expression and nothing else


hi,

i'm trying to do a simple thing where, lets say i have:

Code:
$ echo "Hello World"  | grep "Hello"

>> Hello World
This works as expected, but is there a way I can print just the matching regular expression?

So in the above example, only "Hello" would print.
 
Old 01-07-2008, 05:08 PM   #2
custangro
Senior Member
 
Registered: Nov 2006
Location: California
Distribution: Fedora , CentOS , RHEL
Posts: 1,969
Blog Entries: 1

Rep: Reputation: 208Reputation: 208Reputation: 208
I would do it with sed...



Code:
echo "Hello World" | sed -e 's/World//g'
 
Old 01-07-2008, 05:13 PM   #3
new_2_unix
LQ Newbie
 
Registered: Oct 2007
Posts: 26

Original Poster
Rep: Reputation: 15
this works in this example.
but it will not work as soon as the string changes to something else, for example "Hello World Once Again".

what i'm trying to do is that i have a line of HTML data, and i want to print just the selective HTML tags (and the text between them). i do not want to print the entire line.

any ideas on how i may do this will be much appreciated!
 
Old 01-07-2008, 05:24 PM   #4
matthewg42
Senior Member
 
Registered: Oct 2003
Location: UK
Distribution: Kubuntu 12.10 (using awesome wm though)
Posts: 3,530

Rep: Reputation: 63
Do you mean like the -o option (only matching)?
Code:
$ echo "hello world" |grep -o hello
hello
 
Old 01-07-2008, 05:28 PM   #5
pixellany
LQ Veteran
 
Registered: Nov 2005
Location: Annapolis, MD
Distribution: Arch/XFCE
Posts: 17,802

Rep: Reputation: 738Reputation: 738Reputation: 738Reputation: 738Reputation: 738Reputation: 738Reputation: 738
sed -n 's/.*\(from\).*/\1/p' filename

Finds from anywhere in a line and prints it. Only works for one instance

Edit: Matthew's grep -o method looks to be better.

Last edited by pixellany; 01-07-2008 at 05:31 PM.
 
Old 01-07-2008, 06:02 PM   #6
custangro
Senior Member
 
Registered: Nov 2006
Location: California
Distribution: Fedora , CentOS , RHEL
Posts: 1,969
Blog Entries: 1

Rep: Reputation: 208Reputation: 208Reputation: 208
Quote:
Originally Posted by new_2_unix View Post
this works in this example.
but it will not work as soon as the string changes to something else, for example "Hello World Once Again".

what i'm trying to do is that i have a line of HTML data, and i want to print just the selective HTML tags (and the text between them). i do not want to print the entire line.

any ideas on how i may do this will be much appreciated!
Now that I know this... I agree with pixellany grep -o would work better.

-C
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Find/grep command to find matching files, print filename, then print matching content stefanlasiewski Programming 9 06-30-2016 06:30 PM
bourne shell pattern matching or regular expression powah Programming 2 06-30-2006 11:27 AM
Rular expression matching with java linuxmandrake Programming 2 04-13-2006 12:35 PM
regular expression matching linuxmandrake Programming 2 03-16-2006 07:00 AM


All times are GMT -5. The time now is 07:32 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration