regular expression grepping lines with VARIOUS number of blanks


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting regular expression grepping lines with VARIOUS number of blanks
# 1  
Old 08-10-2009
regular expression grepping lines with VARIOUS number of blanks

Hi,

I need a regular expression grepping all lines starting with '*' followed by a VARIOUS number of blanks and then followed by the string 'Runjob=1'.

I tried that code, but it doesn't work:

Code:
 
grep -i '*'[ ]+'Runjob=1' INPUT_FILE >>OUTPUT_FILE

Can someone help me?

Thanks
# 2  
Old 08-10-2009
Hope this is what you are looking for.....
Try this:
Code:
grep '^*' ipfile | grep ' ' | grep 'string' >opfile

This can be done in one step using egrep. Read man pages of egrep for more details.
Please post sample i/p and expected o/p for best reply/solution.
# 3  
Old 08-10-2009
No matter what kind of space or how many >1:

Code:
grep -E ^\*[[:space:]]\+Runjob=1 INPUT_FILE >>OUTPUT_FILE

# 4  
Old 08-10-2009
thanks but both expressions didn't work Smilie
# 5  
Old 08-10-2009
Code:
echo "*        Runjob=1" |grep -E ^\*[[:space:]]\+Runjob=1
*        Runjob=1

For me it worked. Maybe post a excerpt of your input and use CODE tags when doing so.
# 6  
Old 08-10-2009
Quote:
Originally Posted by zaxxon
Code:
echo "*        Runjob=1" |grep -E ^\*[[:space:]]\+Runjob=1
*        Runjob=1

For me it worked. Maybe post a excerpt of your input and use CODE tags when doing so.
zaxxon, I also don't get any output.

ABE2202, you can try this:

Code:
grep -e "\*[ ]+*.*Runjob=1" INPUT_FILE >> OUTPUT_FILE

# 7  
Old 08-10-2009
Quote:
Originally Posted by ABE2202
...
I need a regular expression grepping all lines starting with '*' followed by a VARIOUS number of blanks and then followed by the string 'Runjob=1'.
...
Assuming that "a VARIOUS number of blanks" means "one or more blanks":

Code:
$
$ cat data.txt
first line
*Runjob=1
* Runjob=1
*  Runjob=1
*   Runjob=1
*    Runjob=1
*     Runjob=1
*      Runjob=1
*       Runjob=1
*        Runjob=1
*         Runjob=1
*          Runjob=1
*           Runjob=1
*            Runjob=1
last line
$
$ # using perl
$ perl -ne '/^*[ ]+Runjob=1/ and print' data.txt
* Runjob=1
*  Runjob=1
*   Runjob=1
*    Runjob=1
*     Runjob=1
*      Runjob=1
*       Runjob=1
*        Runjob=1
*         Runjob=1
*          Runjob=1
*           Runjob=1
*            Runjob=1
$
$ # using egrep
$ egrep '^*[ ]+Runjob=1' data.txt
* Runjob=1
*  Runjob=1
*   Runjob=1
*    Runjob=1
*     Runjob=1
*      Runjob=1
*       Runjob=1
*        Runjob=1
*         Runjob=1
*          Runjob=1
*           Runjob=1
*            Runjob=1
$
$ # using awk
$ awk '/^*[ ]+Runjob=1/' data.txt
* Runjob=1
*  Runjob=1
*   Runjob=1
*    Runjob=1
*     Runjob=1
*      Runjob=1
*       Runjob=1
*        Runjob=1
*         Runjob=1
*          Runjob=1
*           Runjob=1
*            Runjob=1
$
$

tyler_durden
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Regular expression to match multiple lines?

Using a regular expression, I would like multiple lines to be matched. By default, a period (.) matches any character except newline. However, (?s) and /s modifiers are supposed to force . to accept a newline and to match any character including a newline. However, the following two perl... (4 Replies)
Discussion started by: LessNux
4 Replies

2. Shell Programming and Scripting

Regular expression for 6 digit number present in a line

Hello Team, i have a file test1.txt, in which i have to grep only the 6 digit number from it, Could you pls help in this. $cat test1.txt <description>R_XYZ_1.6 r370956</description> $ grep "\{6\}" test1.txt <description>R_XYZ_1.6 r370956</description> i need output as 370956. ... (3 Replies)
Discussion started by: chandana hs
3 Replies

3. Shell Programming and Scripting

regular expression grouping across multiple lines

cat book.txt book1 price 23 sku 1234 auth Bill book2 sku 1233 price 22 auth John book3 auth Frank price 24 book4 price 25 sku 129 auth Tod import re f = open('book.txt', 'r') text = f.read() f.close() m =... (2 Replies)
Discussion started by: chirish
2 Replies

4. UNIX for Advanced & Expert Users

sed: -e expression #1, char 0: no previous regular expression

Hello All, I'm trying to extract the lines between two consecutive elements of an array from a file. My array looks like: problem_arr=(PRS111 PRS213 PRS234) j=0 while } ] do k=`expr $j + 1` sed -n "/${problem_arr}/,/${problem_arr}/p" problemid.txt ---some operation goes... (11 Replies)
Discussion started by: InduInduIndu
11 Replies

5. UNIX for Dummies Questions & Answers

Finding lines with a regular expression, replacing them with blank lines

So the tag for this forum says all newbies welcome... All I want to do is go through my file and find lines which contain a given string of characters then replace these with a blank line. I really tried to find a simple command to do this but failed. Here's what I did come up with though: ... (2 Replies)
Discussion started by: Golpette
2 Replies

6. UNIX for Dummies Questions & Answers

delete lines matching a regular expression

I have a very large file (over 700 million lines) that has some lines that I need to delete. An example of 5 lines of the file: HS4_80:8:2303:19153:193032 153 k80:138891 HS4_80:8:2105:5544:43174 89 k88:81949 165 k88:81949 323 0 * = 323 0 ... (6 Replies)
Discussion started by: pathunkathunk
6 Replies

7. Programming

Perl: How to read from a file, do regular expression and then replace the found regular expression

Hi all, How am I read a file, find the match regular expression and overwrite to the same files. open DESTINATION_FILE, "<tmptravl.dat" or die "tmptravl.dat"; open NEW_DESTINATION_FILE, ">new_tmptravl.dat" or die "new_tmptravl.dat"; while (<DESTINATION_FILE>) { # print... (1 Reply)
Discussion started by: jessy83
1 Replies

8. Shell Programming and Scripting

Would like to print 3 lines after a regular expression is found in the logfile

I would like to print 3 lines after a regular expression is found in the logfile. I'm using the following code: grep -n "$reg_exp" file.txt |while read LINE ;do i=$(echo $LINE |cut -d':' -f1 ) ;sed -n "$i,$(($i+3))p" file.txt ;done The above code things works fine,but sometimes gives erroneous... (3 Replies)
Discussion started by: joachimshaun
3 Replies

9. Shell Programming and Scripting

sed not printing lines before a regular expression.

Hey, I found a way to print the lines which is just before a regular expression, not including the expression. sed -n '/regexp/{n;p;}' myfile Now I'm looking for a way to print all lines, exept the regular expression and also the line before the same regular expression. Use code tags. (1 Reply)
Discussion started by: Livio
1 Replies

10. Shell Programming and Scripting

regular expression across some lines

I am trying to use regular expression to identify ONLY the commands that hasn't the word "tablespace" within it. a command starts with "create table" and ends with ; (semicolon) example file: create table first tablespace ; create table second ( BBL_CUSTOMER_NAME VARCHAR2(32), a... (7 Replies)
Discussion started by: ynixon
7 Replies
Login or Register to Ask a Question