Wednesday, 14 December 2011

Searching strings with grep command

Let me discuss a situation- I have saved all of my contacts information as separate files and put it in a folder called contacts. I have to find the file which contain the name Mr. John. I get started with opening each files in my text editor and ctr+f to find john..it was too difficult since I have about 300 files to search. But working a little smart I found john in 2 minutes..How ? The grep command .
 Grep is a command-line text-search utility originally written for Unix. The name comes from the ed command g/re/p (global / regular expression / print). The grep command searches the given file for lines containing a match to the given strings or words. grep displays the matching lines by default.
How to use grep command :
1.Searching for a string in a file

                $ grep train vehicles.txt

    the above usage will print all the lines containing the text train from vehicles.txt
2 .Searching in multiple files of same type :

                $ grep train *.txt

    the above command will print all the lines with text 'train' from all the text files in that folder
3. Searching by ignoring case sensitivity (with parameter -i)

                $ grep -i train vehicles.txt

     the above command will search all the 'train' sequences wihtout matching the cases.
4 . Word search

                $ grep -w train vehicles.txt
 
     Selecting all lines containing train as a word, i.e. surrounded' by white space (speedtrain
     and train  do not not match) may be accomplished with the -w option flag
5. Count lines when words are matched
             
                $ grep -c 'word' /directory


      grep can count the number of times that the pattern has been matched for each file using -c (count)    option.
6.Search recursively in an entire directory

               $ grep -r 'word' /directory  

   You can search recursively i.e. read all files under each directory for a string .







Monday, 5 December 2011

Installing an rpm file in Debian systems


In Linux the two important variants of Operating Systems are Debian And Red hat. For off line installation of softwares Debian variant uses files of type .deb and Red hat uses .rpm files. Most of us uses Debian variant OS and our famous Ubuntu is a Debian variant OS.
>>What you will do to install an rpm file in a Debian variant system , if you can't find out the Debian version of that item ?
There is a way to install an .rpm file in Debian variant systems. You can use alien package converter to do so. Alien is a program that converts between the rpm, dpkg, stampede slp, and slackware tgz file formats. If you want to use a package from another distribution than the one you have installed on your system, you can use alien to convert it to your preferred package format and install it.
Note:Alien should not be used to replace important system packages, like sysvinit, shared libraries, or other things that are essential for the functioning of your system. Many of these packages are set up differently by Debian and Red Hat, and packages from the different distributions cannot be used interchangeably. In general, if you can’t un-install the package without breaking your system, don’t try to replace it with an alien version.
Install alien converter :
The software is available at Ubuntu Universe repository.So add that repository in software sources (Option is available there) ,open up the terminal and type
the following commands :
             $ sudo apt-get update
             $ sudo apt-get install alien

Installing the .rpm file

First convert the .rpm file to .deb by the following command(assumed that your files are in the home directory ) :
             $sudo alien -k name-of-rpm-file.rpm
this will produce a .deb file with the same name.now use dpkg to install the .deb file .
             $sudo dpkg -i name-of-deb-file.deb



Done :)