Grep -F for special character


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep -F for special character
# 1  
Old 12-13-2013
Grep -F for special character

Code:
 
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
Code:
 
/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 string CASH$$A directly.

Please help.
# 2  
Old 12-13-2013
I think you may need to put in a backslash before each $ character. It is likely that this is being converted to the process id.

Try with:-
Code:
a='CASH\$\$A'
/usr/xpg4/bin/grep -F "$a" *.txt

What output do you get from a simple:-
Code:
echo "$a"



Robin
# 3  
Old 12-13-2013
Odd, works perfectly fine on one of my SPARC SunOS 5.10 boxes:

Code:
a='CASH$$A'
/usr/xpg4/bin/grep -F "$a" /tmp/*.txt
/tmp/file.txt:CASH$$A

# 4  
Old 12-13-2013
It works for me on Solaris 10:
Code:
$ cat /tmp/file
CASH$$A
CASHSSA
$ a='CASH$$A'; /usr/xpg4/bin/grep -F "$a" /tmp/file
CASH$$A

What's actually in the file?

Quote:
Originally Posted by rbatte1
I think you may need to put in a backslash before each $ character. It is likely that this is being converted to the process id.

Try with:-
Code:
a='CASH\$\$A'

Given that it's in single-quotes, surely it won't be evaluating the $s at all? (Which is also why '$a' won't work)
This User Gave Thanks to CarloM For This Post:
# 5  
Old 12-13-2013
try this

grep -F $A *.txt
# 6  
Old 12-13-2013
Actually i want to search EXEC<space>*CASH$$A.
For that i have to assign CASH$$A to a variable a...

Code:
a='CASH$$A'
/usr/xpg4/bin/grep -F "EXEC *$a" *.txt

And as you guys suggested i cannot do a='CASH\$\$A' becos this variable will be used in other part of the program...So is there anyway where i can achieve this.

Thanks in advance.
# 7  
Old 12-13-2013
Remove that -F option if you are using regular expression. It treats each pattern specified as a string instead of a regular expression.
Code:
$ cat file
line 1 EXEC CASH$$A

Code:
$ a='CASH$$A'
$ /usr/xpg4/bin/grep "EXEC *$a" file
line 1 EXEC CASH$$A

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Special character $$

Hi, on ksh What does the following do? grep -v "toolbox" $home_oracle/.profile >$home_oracle/.profile.$$ Thanks. Please use CODE tags as required by forum rules! (3 Replies)
Discussion started by: big123456
3 Replies

2. Shell Programming and Scripting

Grep correct pattern with special character and variables

cat file time="north_south_east_west_08:00" location="A" start="left" status="ok" end="north" time="north_south_east_west_12:00" location="C" start="right" status="ok" end="south" time="north_south_east_west_23:00" location="G" start="left" status="ok" end="east"... (7 Replies)
Discussion started by: ctphua
7 Replies

3. Shell Programming and Scripting

Vi special character

When editing a file, vi displays a special character as ^L. Can you tell me the escaped character to be used in awk? And can that escaped character be used in a regexp in both sed and awk? (7 Replies)
Discussion started by: dmesserly
7 Replies

4. Shell Programming and Scripting

Deleteing one character after an special character

I have below line in a unix file, I want to delete one character after "". 20091020.Non-Agency CMO Daily Trade Recap ~V Hybrids The result should be : 20091020.Non-Agency CMO Daily Trade Recap Hybrids i dont want to use "~V" anywhere in the sed command or any other command, just remove... (1 Reply)
Discussion started by: mohsin.quazi
1 Replies

5. Linux

how to grep special character regular expression?

Hi :) I have 2 files file1: SNP_A-2208459 SNP_A-4215188 SNP_A-2012248 SNP_A-1882998 file2: CHR SNP UNADJ BONF HOLM * * * etc. 19 SNP_A-2236481 1.742e-26 5.442e-21 13 SNP_A-4204405 8.643e-07 1.505e-06 3 SNP_A-1860908... (11 Replies)
Discussion started by: sogi
11 Replies

6. Shell Programming and Scripting

Special character \

Hi, In the shell script, i need to remove the special charater "\" with "\\". For example, i need to replace "D:\FXT\ABC.TXT" with "D:\\FXT\\ABC.TXT". However, when trying to do something like , i get the below error :- -->echo "D:\FXT\ABC.TXT" | sed -e 's#\#\\#g' sed: 0602-404 Function... (7 Replies)
Discussion started by: amit_arora
7 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

Special character in Diff

Hi I am comparing 2 files (using diff command) with numerical data in them. In the output file I want only the differences which are in file2 but not in file1. Although I am getting the diffences i am also getting special characters in the output file which i do not want. Can somebody help me For... (3 Replies)
Discussion started by: ashu_r2001
3 Replies

9. Shell Programming and Scripting

special character

Hi, I am trying to unload file from a database. Which contains few lines with the character below. Rest of the data was unloaded appropriately. a) What does this below character means? b) How can i remove it, I already have sed '/^$/d' c) Will this effect the file by any means... (4 Replies)
Discussion started by: tostay2003
4 Replies

10. Programming

special character ?

hey there im a bit stuck on executing commands that include the special character '?'. can someone recommend a way on how i would be able to execute it?? i thought the glob function could be useful (still mite be) but upon entering the command 'ls pars?' it listed all the files in the... (1 Reply)
Discussion started by: mile1982
1 Replies
Login or Register to Ask a Question