Fetch the rows with match string on a fixed lenth text file - NO delimiters

Hi

I am trying to fetch the rows with match string "0000001234"

Input file looks like below:

09 0 XXX 0000001234 Z 1
09 0 XXX 0000001234 Z 1
09 0 XXX 0000001234 Z 1
09 0 XXX 0000001234 Z 1
09 0 XXX 0000001234 Z 1
09 0 XXX 0000001234 Z 1

here the scenario is like we need to fetch the rows with match string "0000001234" and print the lines in a separate file ...

i tried with grep command by grep ^09 file > output file it works fine only when the string is starts first.

Please can some one help me how we can do this ...

grep is going to be working on a line by line basis, so grep ^09 is doing just what you asked it to do by finding any line that begins with 09

You probably want to use awk, it would be the easiest thing to do. If the data is in the same format that you provided, you could do something like the following:

awk '$4 == "0000001234"' file

By default (if you do not tell awk to print anything specific), it will print the entire record/row. So the above will only print a row if the fourth field is what is shown.

You could also use word boundaries in grep:

-bash-3.2$ cat test.txt
09 0 XXX 0000001234 Z 1
09 0 XXX 0000001234 Z 1
09 0 XXX 50000001234 Z 1
09 0 XXX 40000001234 Z 1
09 0 XXX 30000001234 Z 1
09 0 XXX 10000001234 Z 1

-bash-3.2$ grep "\<0000001234\>" test.txt
09 0 XXX 0000001234 Z 1
09 0 XXX 0000001234 Z 1

Hope that helps.

grep "\<0000001234\>" file > newfile

-Devaraj Takhellambam

Thanks for your Help

what if the input file is like this

09 0 01000000001234 Z 1
09 0 01000000001234 Z 1
09 0 010050000001234 Z 1
09 0 010040000001234 Z 1
09 0 010030000001234 Z 1
09 0 010010000001234 Z 1

and now i want to fetch the rows with match string "0000001234" i.e search the string from 10th column to 19 th column and fetch the rows

Something like this:

$
$ awk 'substr($0,10,10) == "0000001234"' input.txt
09 0 01000000001234 Z 1
09 0 01000000001234 Z 1
$

tyler_durden

Well, you can also just do:

awk '$3 ~ /0000001234/' file

Thanks guys !

This helped me a lot!