grep for special charecters


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers grep for special charecters
# 1  
Old 08-10-2011
Question grep for special charecters

Hi,

I need to grep for text between " 01/Aug" and " 02/Aug" in a text file.

The awk command usually fails with the error saying "line too long"

Is there other simpler ways to achieve this ?
# 2  
Old 08-10-2011
What is your OS and awk version ?

Can you post some example text file ?
# 3  
Old 08-10-2011
Error

uname -a
SunOS mycomp 5.10 Generic_141414-07 sun4v sparc SUNW,SPARC-Enterprise-T5220

I am not sure how to know the awk version.

Below is the sample text.
Code:
16.81.18.151 - user [01/Aug/2011:00:00:55 -0400] "POST  /servlet/lorms/lorms_modify_user HTTP/1.1" 200 133694
16.81.18.145 -  - [01/Aug/2011:00:01:25 -0400] "GET  /eg/Hello.jsp?name=eg&name1=monitoring&user=eg&password

bla bla bla

162.11.18.145 - - [02/Aug/2011:00:00:29 -0400] "GET  /eg/Hello.jsp?name=eg&name1=monitoring&user=eg&password=48&host=169.81.&port=3333&server=myserver  HTTP/1.1" 200 170

bla bla bla ....

The output should contain the first found of the first string and the last searched of the second string.

i.e for grep between "am" & "going".
Code:
i 
am
going
am
i 
want
to
going 
home

Desired Output:
Code:
am
going
am
i 
want
to
going

I am not sure and would want to know if this is the nature of any greping tool.

Thanks...

Last edited by shifahim; 08-10-2011 at 04:01 AM..
# 4  
Old 08-10-2011
On given dummy input this awk should fill your requirment.
Code:
$cat inp
i 
am
going
am
i 
want
to
going 
home
$awk '/am/,/going/ { print } ' inp
am
going
am
i 
want
to
going

Hope that helps.
# 5  
Old 08-10-2011
Error

Hi,

As i said the file that i have is quite HUGE and the awk fails, hence I do not wish to use awk.

Also I am looking forward to greping between "01/Aug" and " 02/Aug" which have special characters.

Thanks,
# 6  
Old 08-10-2011
Use nawk on Solaris.

I'm not sure i'm getting this, please check if this works for your using nawk.
Code:
$ cat inp
er [01/Aug/2011:00:00:55 -0400] "POST  /servlet/lorms/lorms_modify_user HTTP/1.1" 200 133694
16.81.18.145 -  - [01/Aug/2011:00:01:25 -0400] "GET  /eg/Hello.jsp?name=eg&name1=monitoring&user=eg&password

bla bla bla

162.11.18.145 - - [02/Aug/2011:00:00:29 -0400] "GET  /eg/Hello.jsp?name=eg&name1=monitoring&user=eg&password=48&host=169.81.&port=3333&server=myserver  HTTP/1.1" 200 170

bla bla bla ....
$ awk '!/0[12]\/Aug/ { print } '  inp

bla bla bla


bla bla bla ....

Hope this helps, if not, perhaps someone else will jump in.

Regards
Peasant.
# 7  
Old 08-10-2011
Error

Quote:
Originally Posted by Peasant
Use nawk on Solaris.

I'm not sure i'm getting this, please check if this works for your using nawk.
Code:
$ cat inp
er [01/Aug/2011:00:00:55 -0400] "POST  /servlet/lorms/lorms_modify_user HTTP/1.1" 200 133694
16.81.18.145 -  - [01/Aug/2011:00:01:25 -0400] "GET  /eg/Hello.jsp?name=eg&name1=monitoring&user=eg&password

bla bla bla

162.11.18.145 - - [02/Aug/2011:00:00:29 -0400] "GET  /eg/Hello.jsp?name=eg&name1=monitoring&user=eg&password=48&host=169.81.&port=3333&server=myserver  HTTP/1.1" 200 170

bla bla bla ....
$ awk '!/0[12]\/Aug/ { print } '  inp

bla bla bla


bla bla bla ....

Hope this helps, if not, perhaps someone else will jump in.

Regards
Peasant.
Why does it print the second bla bla bla ?

This is my desired output for the above:

Code:
[01/Aug/2011:00:00:55 -0400] "POST  /servlet/lorms/lorms_modify_user  HTTP/1.1" 200 133694
16.81.18.145 -  - [01/Aug/2011:00:01:25 -0400] "GET   /eg/Hello.jsp?name=eg&name1=monitoring&user=eg&password

bla bla bla

162.11.18.145 - - [02/Aug/2011:00:00:29 -0400] "GET   /eg/Hello.jsp?name=eg&name1=monitoring&user=eg&password=48&host=169.81.&port=3333&server=myserver   HTTP/1.1" 200 170

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Removing special ^M charecters

Hi, This code works for me for file in $(find /path/to/dir -type f); do tr -d '\r' <$file >temp.$$ && mv temp.$$ $file done However, i want this code to skip all .class files. Can you help me with the modified code. (2 Replies)
Discussion started by: mohtashims
2 Replies

2. Shell Programming and Scripting

Grep -F for special character

a='CASH$$A' /usr/xpg4/bin/grep -F "$a" *.txt It is not able to grep CASH$$A string as it contains special character $$. I also tried with /usr/xpg4/bin/grep -F '$a' *.txt but still not working. I have to assign CASH$$A to a variable and serach that variable..i dont want to search the... (8 Replies)
Discussion started by: millan
8 Replies

3. Shell Programming and Scripting

grep lines having special characters

Hi, I have a file which has numerous lines and some of the lines having special characters in it. i want to grep the lines which are having special characters. say, one line looks like - %*()$#@"", | acbd antoher line looks like ***##^%! | efcg so these kind of lines are present... (5 Replies)
Discussion started by: rbalaj16
5 Replies

4. Shell Programming and Scripting

Grep with special Characters

Need Help For GREP I have a file say g1.txt and content of file is below REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoDrives /t REG_DWORD /d 4 /f , REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoClose /t REG_DWORD /d 1 /f ,... (4 Replies)
Discussion started by: jalpasoni
4 Replies

5. Shell Programming and Scripting

grep for a special range

hi, i search a command to get follow solution: file: 21082009mueller01testtest 22082009mueller02testtest 23082009mueller03testtest 24082009mueller02testtest 25082009mueller03testtest Solution: I search all lines with "mueller02" at the range 8 to 17 It is possible with greb... (5 Replies)
Discussion started by: Timmää
5 Replies

6. UNIX for Dummies Questions & Answers

Using GREP for special characters

Hi folks I am issuing the following command: grep "" * Looking for the characters \/:*?"<>|#+%& within all files in a directory, but the command fails being unhappy with pipe: ksh: 0403-057 Syntax error: `|' is not expected. How do I force the command to take the pipe | ? I guess... (2 Replies)
Discussion started by: daveaasmith
2 Replies

7. UNIX for Advanced & Expert Users

grep in special character

All, I am trying to grep "-----" from a test when i use this i am getting the below error. What is the reason for this ?????... How can i over come this ##) echo "----------------- test_sys_job -----------------" | grep "-----------------" grep: illegal option -- - grep: illegal... (6 Replies)
Discussion started by: arunkumar_mca
6 Replies

8. Shell Programming and Scripting

Grep not working - special characters??

I have a file that I am processing with a while loop from, in come cases the grep/sed command (strings record | grep “errorDetail” | sed 's&*errorDetail\(.*)\(/errorDetail\).*&\1&') works and produces the data I am after and in some it does not. I have inspected the data within the failing... (3 Replies)
Discussion started by: gugs
3 Replies

9. UNIX Desktop Questions & Answers

grep with special characters

Hi there I need to grep for a detail from a file. The pattern to search for involves escape sequences in it. This causes for the problem. grep "P\_SOME\_STRING\_SEARCH" filename Note, I have line like below in the file and expect it to grep. select * from my_system_param ... (3 Replies)
Discussion started by: guruparan18
3 Replies

10. Shell Programming and Scripting

Grep with Special Characters

I need to sort a file, the sort is not a alphabetical sort, it's based on a predefined order which is read from a file called fSortOrder. The format of the fSortOrder file is : STARTPATH" .... .... The file that needs to be sorted is called tmpUnsorted and contains data in the format : ... (6 Replies)
Discussion started by: Vashj
6 Replies
Login or Register to Ask a Question