07-17-2013
Within awk you can use a so-called regex constant / regex /{print} or $0 ~ / regex / {print } but a regex constant cannot contain a variable.
If you want to use a variable you need to put the regex in a string and use the regex matching operator ~ ( $0 ~ " regex "{print} )
So it becomes -v re='regex' ' .... $0 ~ re {print }. But this means the backslashes do need to be escaped, because the string needs to be evaluated first before it can be interpreted as a regex, hence the double backslashes in my previous example ( in a string you need to use \\ is you want to print \ ).
Last edited by Scrutinizer; 07-17-2013 at 06:37 PM..
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
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
2. Shell Programming and Scripting
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... (6 Replies)
Discussion started by: Rjkz
6 Replies
3. Shell Programming and Scripting
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
4. Shell Programming and Scripting
Hi All,
Below is a sample code:
print "Enter the Name: ";
my $Name = <>;
print "Word is $Name";
open (FH,"AIDNameList.txt");
while (<FH>)
{
my $line;
print "Word is $Name";
for $line(<FH>)... (12 Replies)
Discussion started by: jisha
12 Replies
5. Shell Programming and Scripting
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
6. Shell Programming and Scripting
Hi All,
Im using Bash.
I have a pipe delimited config file which contains 3 columns,
1st column = location of a file to be chnaged
2 column = expression to find within file
3rd column = string to replace.
A script will loop through the contetnts of this file and apply the changes using... (2 Replies)
Discussion started by: satnamx
2 Replies
7. Shell Programming and Scripting
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
8. Programming
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
9. Shell Programming and Scripting
Hi All,
I have a sftp session log where I am transferring multi files by issuing "mput abc*.dat". The contents of the logfile is below -
#################################################
Connecting to 10.75.112.194...
Changing to: /home/dasd9x/testing1
sftp> mput abc*.dat
Uploading... (7 Replies)
Discussion started by: k_bijitesh
7 Replies
10. UNIX for Advanced & Expert Users
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
RE_COMP(3) Linux Programmer's Manual RE_COMP(3)
NAME
re_comp, re_exec - BSD regex functions
SYNOPSIS
#define _REGEX_RE_COMP
#include <sys/types.h>
#include <regex.h>
char *re_comp(char *regex);
int re_exec(char *string);
DESCRIPTION
re_comp() is used to compile the null-terminated regular expression pointed to by regex. The compiled pattern occupies a static area, the
pattern buffer, which is overwritten by subsequent use of re_comp(). If regex is NULL, no operation is performed and the pattern buffer's
contents are not altered.
re_exec() is used to assess whether the null-terminated string pointed to by string matches the previously compiled regex.
RETURN VALUE
re_comp() returns NULL on successful compilation of regex otherwise it returns a pointer to an appropriate error message.
re_exec() returns 1 for a successful match, zero for failure.
CONFORMING TO
4.3BSD.
NOTES
These functions are obsolete; the functions documented in regcomp(3) should be used instead.
SEE ALSO
regcomp(3), regex(7), GNU regex manual
COLOPHON
This page is part of release 3.25 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
GNU
1995-07-14 RE_COMP(3)