Sponsored Content
Top Forums Shell Programming and Scripting grep backreferencing question Post 302464185 by DGPickett on Tuesday 19th of October 2010 01:28:52 PM
Old 10-19-2010
Your grep is "too anchored" and your regex visualization is too wild. There is no back referencing in regex, just iteratively forward testing: '.*' means try remainder of pattern at every following byte.

A line containing the word int and later a semicolon should not have any variable-legal word repeated between them. Every variable name in C must start with a letter, the rest of the name can consist of letters, numbers and underscore characters. Commas are not variable-legal words, so you can ignore them -- classic excess information problem.

Deal with white spaces using \<\> or similar word boundary, so you avoid substrings but do not get tangled in the whole comma, space, tab thing. Some grep do not honor '\<\>' so you may need sed or '\b'.

Regex Tutorial - \b Word Boundaries

If you get desperate, add spaces by commas and semicolon so you can look for space or tab [ \t]. If you need to restore the original, sed has a hold space h/g command pair.

Code:
Narrative: grep for a line with the free standing word 'int', and
 later on that line for every C variable name as a free standing word somewhere,
  see if we have that same C variable name as a free standing word later anywhere,
 and yet later on that line a semicolon.

grep '\<int\>.*\<\([a-zA-Z][a-zA-Z0-9_]*\)\>.*\<\1\>.*;'

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

grep question

what is the format for grep if I want to search from the current directory and through all its subdirectories?:) (3 Replies)
Discussion started by: pkappaz
3 Replies

2. Shell Programming and Scripting

grep question

Hi, I am currently using grep -c to scan lines for certain data. I am just wondering if you can search a specific column of a file using grep -c. Thanks (6 Replies)
Discussion started by: Jaken
6 Replies

3. Shell Programming and Scripting

Grep question

I'm using grep in a shell and I was wondering: Can I grep a file and then delete all files that contain what it returns? So instead of grep 'blah' * and I have 50 files that have blah in it and I would have to delete all 50 manually, how would I just delete them all in one fell swoop? (3 Replies)
Discussion started by: tphegley
3 Replies

4. UNIX for Dummies Questions & Answers

Grep question.

Hi, I am executing the below command. grep ".UPDATE" file1.txt | grep -v MQQUEUE > Myprog1 The expected output is all lines in file1.txt which have the string ".UPDATE" and dont contain the string MQQUEUE. However, the output which I am getting is just searching for the string... (3 Replies)
Discussion started by: saurabhsinha23
3 Replies

5. Programming

'Backreferencing' in SQL?

My SQL is very rust and I'm having a problem with a query. First, here are the tables involved. Table `os`: +--------------------------------+ | id | distro | version | +--------------------------------+ | 1 | CentOS | 5.2 | | 2 | RHEL | 5 | | 3 ... (1 Reply)
Discussion started by: Housni
1 Replies

6. UNIX for Dummies Questions & Answers

grep question

Instead of using the following command #dmesg | grep -v sendmail | grep -v xntpd How can I use just one grep -v and give both arguments. Please suggest thanks (4 Replies)
Discussion started by: Tirmazi
4 Replies

7. Shell Programming and Scripting

grep question

Hello, Is there a way in grep to remember patterns? For eg: int a,b,c,d,a; If a variable is declared twice, like in the previous example, I should be able to print only those lines. Is there a way to print only the lines where the variable name occurs more than once, using grep... (1 Reply)
Discussion started by: prasanna1157
1 Replies

8. Shell Programming and Scripting

Grep question

All, I am wanting to find out if I can do this in one grep statement grep -R failed * |grep -iEw 'Mar 1|Feb 2' I want to search all files in a directory for the text "failed" AND a "date or date". Currently, I am using the above running one grep and then piping it to another. It works,... (3 Replies)
Discussion started by: markdjones82
3 Replies

9. Shell Programming and Scripting

Question about grep

can anyone tell me what the \/$ means? from grep \/$ (8 Replies)
Discussion started by: Nick1097
8 Replies

10. Shell Programming and Scripting

Question about grep

is there anyway i can ask grep to only get the first line? as in the top command line line 1 <-- just grep this line line 2 line 3 ---------- Post updated at 04:24 PM ---------- Previous update was at 04:19 PM ---------- nvm.. found out that i can do it with |head (12 Replies)
Discussion started by: Nick1097
12 Replies
XZGREP(1)							     XZ Utils								 XZGREP(1)

NAME
xzgrep - search compressed files for a regular expression SYNOPSIS
xzgrep [grep_options] [-e] pattern file... xzegrep ... xzfgrep ... lzgrep ... lzegrep ... lzfgrep ... DESCRIPTION
xzgrep invokes grep(1) on files which may be either uncompressed or compressed with xz(1), lzma(1), gzip(1), bzip2(1), or lzop(1). All options specified are passed directly to grep(1). If no file is specified, then standard input is decompressed if necessary and fed to grep(1). When reading from standard input, gzip(1), bzip2(1), and lzop(1) compressed files are not supported. If xzgrep is invoked as xzegrep or xzfgrep then egrep(1) or fgrep(1) is used instead of grep(1). The same applies to names lzgrep, lze- grep, and lzfgrep, which are provided for backward compatibility with LZMA Utils. ENVIRONMENT
GREP If the GREP environment variable is set, xzgrep uses it instead of grep(1), egrep(1), or fgrep(1). SEE ALSO
grep(1), xz(1), gzip(1), bzip2(1), lzop(1), zgrep(1) Tukaani 2011-03-19 XZGREP(1)
All times are GMT -4. The time now is 04:28 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy