grep for lines not containing #


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users grep for lines not containing #
# 8  
Old 06-04-2012
Quote:
My problem is I didn't get an error. I got a ton of blank lines.
That's better than
Quote:
That didn't work.
Thanks.
# 9  
Old 06-05-2012
I'm no expert with grep or regular expressions in general (started working with them a couple days ago), but wouldn't using this pattern in grep work?
Code:
^[^\r\n#]+[\r\n]

I haven't used grep from the terminal, but my text editor can use grep for search, and this matches all lines without # and ignores those with a #.

EDIT:

To match blank lines, change the + to a *
Code:
^[^\r\n#]*[\r\n]

# 10  
Old 06-05-2012
Carriage returns (\r) are not part of a regular Unix file and a linefeed (\n) cannot be matched by regular grep, since grep is line based. + is part of an extended regular expression (ERE) so you would need to use grep -E
# 11  
Old 06-05-2012
Ok. That's good to know. I suppose the end of line anchor ($) will work, then.

This seems to work on a tiny test file.

Code:
grep -e '^[^#]*$' testhash.txt

EDIT:

This is my file contents:
Code:
line1 has some text
line2 is a second line
li#e3 has a hash!
line4 the above line had a hash!
line# has a hash too
line6 - ^ had a hash.. bad line?
#ine7 hashline
line8 lastly the last line
#

line11 single hash and a blank line above

And this is the output:
Code:
line1 has some text
line2 is a second line
line4 the above line had a hash!
line6 - ^ had a hash.. bad line?
line8 lastly the last line

line11 single hash and a blank line above


Last edited by egill; 06-05-2012 at 06:21 PM..
# 12  
Old 06-05-2012
But that would also filter out lines that use the # symbol somewhere on the line either as a partial comment or not as a comment. It also does not filter out empty lines..

To compare:
Code:
$ cat infile
# This is a test
echo hello # partial test

echo the line above contains tabs and spaces

echo the line above is empty
  echo "just want to print an #i character" ffsf
$ grep -e '^[^#]*$' infile

echo the line above contains tabs and spaces

echo the line above is empty
$ awk 'NF && $1!~/^#/' infile
echo hello # partial test
echo the line above contains tabs and spaces
echo the line above is empty
  echo "just want to print an #i character" ffsf
$

# 13  
Old 06-05-2012
Ok, as that was my intention, I suppose I was misunderstanding what was desired.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep three consecutive lines if each lines contains certain string

say we have : 2914 | REQUEST | whatever 2914 | RESPONSE | whatever 2914 | SUCCESS | whatever 2985 | RESPONSE | whatever 2986 | REQUEST | whatever 2990 | REQUEST | whatever 2985 | RESPONSE | whatever 2996 | REQUEST | whatever 2010 | SUCCESS | whatever 2013 | REQUEST | whatever 2013 |... (7 Replies)
Discussion started by: Saumitra Pandey
7 Replies

2. Shell Programming and Scripting

Grep couple of consecutive lines if each lines contains certain string

Hello, I want to extract from a file like : 20120530025502914 | REQUEST | whatever 20120530025502968 | RESPONSE | whatever 20120530025502985 | RESPONSE | whatever 20120530025502996 | REQUEST | whatever 20120530025503013 | REQUEST | whatever 20120530025503045 | RESPONSE | whatever I want... (14 Replies)
Discussion started by: black_fender
14 Replies

3. Shell Programming and Scripting

AWK/GREP: grep only lines starting with integer

I have an input file 12.4 1.72849432773174e+01 -7.74784188610632e+01 12.5 9.59432114416327e-01 -7.87018212757537e+01 15.6 5.20139995965960e-01 -5.61612429666624e+01 29.3 3.76696387248366e+00 -7.42896194101892e+01 32.1 1.86899877018077e+01 -7.56508762501408e+01 35 6.98857157014640e+00... (2 Replies)
Discussion started by: chrisjorg
2 Replies

4. Shell Programming and Scripting

Extracting specific lines of data from a file and related lines of data based on a grep value range?

Hi, I have one file, say file 1, that has data like below where 19900107 is the date, 19900107 12 144 129 0.7380047 19900108 12 168 129 0.3149017 19900109 12 192 129 3.2766666E-02 ... (3 Replies)
Discussion started by: Wynner
3 Replies

5. Shell Programming and Scripting

Perl XML, find matching condition and grep lines and put the lines somewhere else

Hi, my xml files looks something like this <Instance Name="New York"> <Description></Description> <Instance Name="A"> <Description></Description> <PropertyValue Key="false" Name="Building A" /> </Instance> <Instance Name="B"> ... (4 Replies)
Discussion started by: tententen
4 Replies

6. Shell Programming and Scripting

Print lines between two lines after grep for a text string

I have several very large file that are extracts from Oracle tables. These files are formatted in XML type syntax with multiple entries like: <ROW> some information more information </ROW> I want to grep for some words, then print all lines between <ROW> AND </ROW>. Can this be done with AWK?... (7 Replies)
Discussion started by: jbruce
7 Replies

7. Shell Programming and Scripting

AIX equivalent to GNU grep's -B and -A [print lines after or before matching lines]

Hi folks I am not allowed to install GNU grep on AIX. Here my code excerpt: grep_fatal () { /usr/sfw/bin/gegrep -B4 -A2 "FATAL|QUEUE|SIGHUP" } Howto the same on AIX based machine? from manual GNU grep ‘--after-context=num’ Print num lines of trailing context after... (4 Replies)
Discussion started by: slashdotweenie
4 Replies

8. Shell Programming and Scripting

Grep and delete lines except the lines with strings

Hi I am writing a script which should read a file and search for certain strings 'approved' or 'removed' and retain only those lines that contain the above strings. Ex: file name 'test' test: approved package waiting for approval package disapproved package removed package approved... (14 Replies)
Discussion started by: vj8436
14 Replies

9. Shell Programming and Scripting

grep and fetching lines after grep

suppose i have a file structure(serial file)-- ---------- ---------- --------- summery -------- ------ -------- finished ----- ------- i want to fetch lines from summery to finished i can get line of summery by grep command. but how can i fetch lines untill it reaches finished.probably... (2 Replies)
Discussion started by: arghya_owen
2 Replies

10. Shell Programming and Scripting

grep + lines after

Hello again, I'm still working on the redo of my script I created before and came across a grep question. I'm on SunOS 5.9 and using the Korn Shell. I'm writing a function to check for validation of root disks being mirrored. If the server allows me to use metastat, I'm looking to show it has... (4 Replies)
Discussion started by: Janus
4 Replies
Login or Register to Ask a Question