nawk empty regular expression error


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting nawk empty regular expression error
# 1  
Old 12-20-2007
nawk empty regular expression error

Hello, All.
please help me with this problem.
i need to use variable as regular expression.
some thing like this:

BEGIN {
RS="\n";
ORS="\n";
reg_exp = ".+Dec.+";
# i mean that regular expression is any symbol before "Dec" and any symbol after it. For example <Worksheet ss:Name="December">
}

$0 ~ reg_exp {
print $0
next
}
and i get: error empty regular expression.
if i try like this

$0 ~ /.+Dec.+/{
print $0
next
}
everything is all right.
thanks in advance
# 2  
Old 12-20-2007
you can try
Code:
reg_exp = "Dec"

# 3  
Old 12-20-2007
thank you for your reply.
it works.

but actually a get a reg_exp during running the script

like this

$0 ~ /.+<Worksheet ss:Name.+/{
reg_exp = substr($0,22,3)
# i can print reg_exp. the value of reg_exp is "Dec"
print $0
next
}
and then i use this reg_exp.
the string which hold "<Worksheet ss:Name" is before string which i compare with reg_exp


and i stell get error
# 4  
Old 12-20-2007
Maybe this helps you:

Code:
> cat kk
<Worksheet ss:Name="December">
<Worksheet ss:Name="November">

Code:
> regex="Dec"
> awk ' /.+'"${regex}"'.+/ ' kk
<Worksheet ss:Name="December">

Code:
> regex="Nov"                  
> awk ' /.+'"${regex}"'.+/ ' kk
<Worksheet ss:Name="November">

# 5  
Old 12-20-2007
Quote:
Originally Posted by Rjkz
thank you for your reply.
it works.

but actually a get a reg_exp during running the script

like this

$0 ~ /.+<Worksheet ss:Name.+/{
reg_exp = substr($0,22,3)
# i can print reg_exp. the value of reg_exp is "Dec"
print $0
next
}
and then i use this reg_exp.
the string which hold "<Worksheet ss:Name" is before string which i compare with reg_exp


and i stell get error
since you have .+ both infront of the "<Worksheet ss:Name" and behind it, it is also equivalent to /<Worksheet ss:Name/, there is no need to use .+ . However, for completeness, you should show a sample of your data file, and describe how you want your output to be.
# 6  
Old 12-20-2007
Quote:
Originally Posted by Rjkz
Hello, All.
please help me with this problem.
i need to use variable as regular expression.
some thing like this:

BEGIN {
RS="\n";
ORS="\n";
reg_exp = ".+Dec.+";
# i mean that regular expression is any symbol before "Dec" and any symbol after it. For example <Worksheet ss:Name="December">
}

$0 ~ reg_exp {
print $0
next
}
and i get: error empty regular expression.
if i try like this

$0 ~ /.+Dec.+/{
print $0
next
}
everything is all right.
thanks in advance

You don't need the BEGIN{} part as it is the default action taken by nawk.

Code:
nawk '{
   regexp=".+Dec.+"
   if ($0 ~ regexp)
      print $0
}' file

# 7  
Old 12-21-2007
Hello, All.
i had problem with connection yesterday and could not unswer.
Thanks a lot.
i've already solved my problem.
my problem was:

i was trying to use reg_exp before i assign this variable.
my script was:
BEGIN {
RS="\n";
ORS="\n";
reg_exp="";
}
$0 ~ /.+<Worksheet ss:Name.+/{
reg_exp = substr($0,22,3)
print $0
next
}
$0 ~ reg_exp {
print $0
print "TEST"
next
}

and input file was about:

Record_1
Record_2
Record_3
.......
Record_n
<Worksheet ss:Name="December">
Record_n+2
.....

Bye
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing regular expression to nawk

I am trying to test if I can replace a regular expression in 'nawk' with a variable. Please let me know why it is not working. I am using ksh88i on solaris8 I am trying use this test as a building block to filter active external DNS connections. Ideally I want to pass variable defined... (4 Replies)
Discussion started by: kchinnam
4 Replies

2. Shell Programming and Scripting

Help with awk script (syntax error in regular expression)

I've found this script which seems very promising to solve my issue: To search and replace many different database passwords in many different (.php, .pl, .cgi, etc.) files across my filesystem. The passwords may or may not be contained within quotes, single quotes, etc. #!/bin/bash... (4 Replies)
Discussion started by: spacegoose
4 Replies

3. 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

4. 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

5. Shell Programming and Scripting

nawk and regular expression

I have an input file which looks like the example below and I want to format it with 2 columns from the header based on the word "CUSIP" followed by a 9 digit string with first 3 being numeric and in the same line NNN.NN% pattern for the percentage value. (In RED) I started of with nawk but... (12 Replies)
Discussion started by: ejazsyed
12 Replies

6. Shell Programming and Scripting

Integer expression expected: with regular expression

CA_RELEASE has a value of 6. I need to check if that this is a numeric value. if not error. source $CA_VERSION_DATA if * ] then echo "CA_RELESE $CA_RELEASE is invalid" exit -1 fi + source /etc/ncgl/ca_version_data ++ CA_PRODUCT_ID=samxts ++ CA_RELEASE=6 ++ CA_WEEK_NO=7 ++... (3 Replies)
Discussion started by: ketkee1985
3 Replies

7. Shell Programming and Scripting

Dynamic regular expression in nawk

Hi FolksI want to write a nawk script that dynamically creates variable numbers of regular expressions on the fly rather than using constants. Is this possible?They would need to be used within an if statement within the nawk program: - if ( "my string of regex's" ) Thanks (7 Replies)
Discussion started by: steadyonabix
7 Replies

8. Shell Programming and Scripting

Help with NAWK regular expressions

I've a file $ cat size 1234 5678 vamsi I want to match the lines which has just 4 digits and nothing else. So $ cat size | nawk ' $0 ~ // {print}' 1234 5678 But when I use the repetition clause it doesn't work cat size | nawk ' $0 ~ /{4}/ {print}' I actually want to filter out the... (8 Replies)
Discussion started by: vamsi.coe
8 Replies

9. UNIX for Advanced & Expert Users

Regular Expression Error in AWK

I have a file "fwcsales_filenames.txt" which has a list of file names that are supposed to be copied to another directory. In addition to that, I am trying to extract the date part and write to the log. I am getting the regular expression error when trying to strip the date part using the "ll"... (1 Reply)
Discussion started by: madhunk
1 Replies

10. Shell Programming and Scripting

Regular Expression + Aritmetical Expression

Is it possible to combine a regular expression with a aritmetical expression? For example, taking a 8-numbers caracter sequece and casting each output of a grep, comparing to a constant. THX! (2 Replies)
Discussion started by: Z0mby
2 Replies
Login or Register to Ask a Question