Unable to grep control/non printable characters


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Unable to grep control/non printable characters
# 8  
Old 02-01-2012
Wow, I've never seen that behavior anywhere. I can only guess that shell was made for a system that didn't always have the | key Smilie
# 9  
Old 02-01-2012
I found a reference to it here: https://en.wikipedia.org/wiki/Thompson_shell.
It would seem that Bourne kept it for compatibility with the Thompson shell I guess.

It's mentioned here too in the Thompson shell man page: http://www.in-ulm.de/~mascheck/bourne/v4/
search for the circumflex character '^'.

"One or more commands separated by '|' or '^' constitute a pipeline."

Look at this even older Thompson shell version, where pipe symbols were the same as redirection: http://www.in-ulm.de/~mascheck/bourne/v3/

By extending the syntax used for
redirection of I/O, a command line can specify that the
output produced by a command be passed via a pipe through
another command which acts as a filter. For example:

command >filter>

Last edited by gary_w; 02-01-2012 at 12:55 PM..
# 10  
Old 02-03-2012
Data

Quote:
Originally Posted by Corona688
^ and * have special meanings in perl regular expressions, too.

Escape them!
The problem is that "^^^613*" will be stored in a variable(i) like
Quote:
while read i
do
pearl -pi -e "s|$i|$passwd|g" $k
done


How will the script understand when will $i contain a special character and escape that automatically
# 11  
Old 02-04-2012
Hi.
Quote:
Originally Posted by Corona688
Wow, I've never seen that behavior anywhere. I can only guess that shell was made for a system that didn't always have the | key Smilie
Yes, like TTY33's -- ASR-33 Teletype - Wikipedia, the free encyclopedia -- limited character set, uppercase only, slow, noisy, etc., adapted for interactive work from other environments ... cheers, drl
# 12  
Old 02-04-2012
For grepping use fgrep:
Code:
$ i="^^^613*"
$ echo "$i"
^^^613*
$ echo '/test/x201.cfg:reg.1.random="^^^613*"' | fgrep "$i"
/test/x201.cfg:reg.1.random="^^^613*"

A quick and dirty way to escape these special characters:
Code:
perl -pi -e "s|$(printf "%s" "$i"|sed 's/[*^]/\\&/g')|$passwd|g" "$k"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Redirecting records with non-printable characters

Hi, I have a huge file (50 Mil rows) which has certain non-printable ASCII characters in it. I am cleaning the file by deleting those characters using the following command - tr -cd '\11\12\15\40-\176' < unclean_file > clean_file Please note that I am excluding the following - tab,... (6 Replies)
Discussion started by: rishigc
6 Replies

2. Shell Programming and Scripting

ksh check for non printable characters in a string

Hi All, I am trying to find non-printable characters in a string. The sting could have alphanumeric, puntuations and characters like (*&%$#.') but not non-printable (or that is what I think they are called) which are introduced when you copy any text from DOS to unix box. Input string1:... (10 Replies)
Discussion started by: dips_ag
10 Replies

3. Shell Programming and Scripting

Control Characters

Hallo Team, I am trying to get rid of the dollar sign. I managed to remove all the other special characters but i am struggling with this one. -bash-3.2$ cat -e missing_revenue_20141112.csv|less|head BW0522168531211141180935668@196.23.110.141$ BW092218784121114-370120610@196.23.110.141$... (4 Replies)
Discussion started by: kekanap
4 Replies

4. Shell Programming and Scripting

sed replacing specific characters and control characters by escaping

sed -e "s// /g" old.txt > new.txt While I do know some control characters need to be escaped, can normal characters also be escaped and still work the same way? Basically I do not know all control characters that have a special meaning, for example, ?, ., % have a meaning and have to be escaped... (11 Replies)
Discussion started by: ijustneeda
11 Replies

5. UNIX for Dummies Questions & Answers

removing non printable characters

Hi, in a file, i have records as below: 123|62|absnb|267629 123|267|28728|uiuip 123|567|26761|2676 i want to remove the non printable characters after the end of each record. I guess there are certain charcters but not visible. i don't know what character that is exactly. I used... (2 Replies)
Discussion started by: pandeesh
2 Replies

6. Shell Programming and Scripting

Removing Non-printable characters in unix file

Hi, We have a non printable character "®" in our file , we want to remove this character, we tried tr -dc '' < oldfile> newfile but this command is removing all new line entries along with the non printable character and all the records are coming in one line(it is changing the format of the... (2 Replies)
Discussion started by: pyaranoid
2 Replies

7. HP-UX

Non-printable characters

I have been using OKI data Microline printers; models 590 and 591 to print a bar code using the following escape sequence: \E^PA^H^C00^D^C^A^A^A\E^PB^H The escape sequence is stored in a unix file which is edited using vi. Now, we are considering Microline printer model 395C and the bar code... (3 Replies)
Discussion started by: Joy Conner
3 Replies

8. UNIX for Dummies Questions & Answers

delete non printable characters from file

i have a file which contains non printable characters like enter,escape etc i want to delete them from the file (2 Replies)
Discussion started by: alokjyotibal
2 Replies

9. Shell Programming and Scripting

grep non printable characters

Sometimes obvious things... are not so obvious. I always thought that it was possible to grep non printable characters but not with my GNU grep (5.2.1) version. printf "Hello\tWorld" | grep -l '\t' printf "Hello\tWorld" | grep -l '\x09' printf "Hello\tWorld" | grep -l '\x{09}' None of them... (3 Replies)
Discussion started by: ripat
3 Replies

10. Shell Programming and Scripting

Best way to search files for non-printable characters?

I need to check ftp'd incoming files for characters that are not alphanumeric,<tab>, <cr>, or <lf> characters. Each file would have 10-20,000 line with up to 3,000 characters per line. Should I use awk, sed, or grep and what would the command look like to do such a search? Thanks much to anyone... (2 Replies)
Discussion started by: jvander
2 Replies
Login or Register to Ask a Question