ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Linux Guide: An Introduction to Grep Part 2

Updated on May 21, 2009

A Brief Introduction

This is the second part to my Introduction to grep, which is a very powerful command line tool used for searching files.

grep is incredibly useful and has a lot of different uses. For example, if you work with html a lot, you can use grep to quickly search all of your html files for a specific piece of code. If your web host lets you ssh into your web server, grep can be a very great tool for editing Wordpress themes or your website files.

While this command originated in Linux, there are several Windows ports available, which will let you use the grep command. Perhaps one of the most common is Cygwin, which can deliver a vast number of Linux tools, including grep, to your Windows Desktop.

This grep tutorial touches on some of more basic grep techniques. If you want to see a full list of all of the grep options, simply open up a terminal and type “man grep

Technical Jargon Disclaimer

What follows contains a good deal of technical jargon, which might make little sense if you are not familiar with Linux or use a program like Cygwin.

This is the second part of my Introduction to Grep Guide, so if you have not already read it, you might want to check it out first, because some of the options used were explained in the previous how to.

Getting Started

Before we begin the grep tutorial, there are a couple of things that you need to do.

1. First lets make a folder on your desktop called greptest. You can do this by right clicking on your desktop and selecting “Create Folder.”

2. Create a file in the greptest directory called test.txt, you can use gedit or whatever your favorite text editor is.

Copy the following data into test.txt:

Line 1: aging
Line 2: medical managing
Line 3: medical lifting
Line 4: home lift
Line 5: safety stairlift 

3. Open up your Linux terminal. If you are using Ubuntu, you can goto:

     Applications → Accessories → Terminal 

4. Change to the greptest directory ( cd Desktop/greptest )

5. Type "cp test.txt test1.txt" . This will copy the test.txt file into a new file named test1.txt. You will now have two identical files in the greptest directory. One is named test.txt the other is named test1.txt

Matching Only Complete Words

Often, you might want to search for a complete word, but by default grep searches for letter patterns within the word.

Use the -w option o search for only words that are on their own line or are separated by a non-word character, like a space.

Example:

1. grep lift test.txt
 
   Output: 
 
   Line 3: medical lifting 
   Line 4: home lift 
   Line 5: safety stairlift  

*Note that it finds three lines with the word lift in it.*

2. grep -w lift test.txt
 
   Output:
 
   Line 4: home lift 

*Note that this time it only finds one line with the word “lift” in it.*

Formatting the Output

To make the output a little easier to read, you can use the -T command, which adds a tab stop to the output.

We will use the * command, which in Linux is a wild card character, used to match any string. In the example below, we use test.* which matches any file that starts with “test.”

Example:

1. grep -w lift * 
 
  Output: See Image 

*This can be a little hard to read, especially if you had a lot of matches.*

2. grep -T -w lift * 
 
   Output: See Image 

By using the -T option, the output is formatted in a way that much easier to read.

Printing Only the Filename:

If you are searching a lot of files, you might simply want to know what files contain the search phrase, but do not need the other information.

To only show the filenames, we will use the -l option. We will also use the * operator again.

Example:

1. grep lift * 
 
   Output: 
 
   test1.txt:Line 3: medical lifting 
   test1.txt:Line 4: home lift 
   test1.txt:Line 5: safety stairlift 
   test.txt:Line 3: medical lifting 
   test.txt:Line 4: home lift 
   test.txt:Line 5: safety stairlift 

This prints all of the lines in both files, which contain the word lift. If you were searching a lot of files, or files that used the word lift much more, this could easily become hard to read.

2. grep -l lift * 
 
   Output: 
 
   test1.txt 
   test.txt 

*Note that this time, only the filenames are printed.*

Using Colors

grep can be very powerful, but if you are searching a lot of files or have a lot of results, the results can sometimes be hard to read.

Grep allows you to use the color option to add colors to the output. While you can customize each color, for the purpose of this tutorial, we will use the --color=always command, which uses greps default color scheme.

Note that color is preceded with two dashes (--)

Example:

1. grep -n -T lift * 
 
   Output: See Image 
 
2. grep -n -T --color=always lift * 
 
   Output: See Image
 
 
 

Finding Out More

This tutorial touches on but a few of the ways you can use grep. There are a great number of other options that you can use and you can combine many of the options that you have already learned as well. Once you learn how to use grep, you can apply it to a number of other similar Linux command line tools, such as awk.

In the next guide, regular expressions will be explained, which can greatly increase the power of grep.

Comments

Submit a Comment

No comments yet.

working

This website uses cookies

As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

Show Details
Necessary
HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
LoginThis is necessary to sign in to the HubPages Service.
Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
AkismetThis is used to detect comment spam. (Privacy Policy)
HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
Features
Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
MavenThis supports the Maven widget and search functionality. (Privacy Policy)
Marketing
Google AdSenseThis is an ad network. (Privacy Policy)
Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
Index ExchangeThis is an ad network. (Privacy Policy)
SovrnThis is an ad network. (Privacy Policy)
Facebook AdsThis is an ad network. (Privacy Policy)
Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
AppNexusThis is an ad network. (Privacy Policy)
OpenxThis is an ad network. (Privacy Policy)
Rubicon ProjectThis is an ad network. (Privacy Policy)
TripleLiftThis is an ad network. (Privacy Policy)
Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
Statistics
Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)