![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| string deletion, variable contents, fixed delimiters | rebelbuttmunch | Shell Programming and Scripting | 2 | 03-24-2009 07:44 AM |
| c program to extract text between two delimiters from some text file | kukretiabhi13 | High Level Programming | 7 | 12-03-2008 06:29 PM |
| How to fetch data from a text file in Unix | shikhakaul | Shell Programming and Scripting | 4 | 01-25-2008 11:20 AM |
| convert XML file into Text file(fixed length) | ram2s2001 | Shell Programming and Scripting | 0 | 11-03-2005 01:28 AM |
| Inserting new line after match of a fixed string | sunil_neha | Shell Programming and Scripting | 6 | 04-13-2004 12:09 PM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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: Code:
awk '$4 == "0000001234"' file You could also use word boundaries in grep: Code:
-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 |
|
||||
|
Quote:
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 |
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|