[ < < < Home ]
[ < < Reference Start ]
[ < Reference Contents ]
[ < Previous=PDGREPPE Double Bytes ]
[ Next=PDGREPPE Literal File > ]
Escaped bytes are ones that have been converted to some other
value.
If the byte was originally magic, then an escape makes it
NON-magic.
If the byte was originally NON-magic, an escape makes it magic,
if the byte is recognised by PDGREPPE as one of its magic
symbols. Otherwise it retains its normal value.
To escape a byte use a standard backslash '\'.
pdgreppe -Hjc -1 "." file_id.diz
...will find the first (-1) ANY "." byte on each non-empty line of
file_id.diz
pdgreppe -Hjc -1 "\." file_id.diz
...will find the period "." bytes in file_id.diz because the
magic symbol "." has been escaped by "\" to become "\.".
Options -E and -jX<d>:
To assist in the entry of LITERAL BYTES, that resemble MAGIC
SYMBOLS, the option "-E" may be given on the command line, in
which case any Magic Character is expected to be escaped, e.g.
"\?" to become magic.
The option "-E" is useful when entering bytes as literal bytes
(bytes that just represent themselves) that would otherwise
be considered magic like any of
[^$[].(){}<>#%-/;!?*+&|~`'@:,=]
AND at the same time entering a few MAGIC symbols that can be
escaped with the backslash character (\).
\<char> next character in [^$[].(){}<>#%-/;!?*+&|~`'@:,=] is MAGIC (option -E)
\<char> next character in [^$[].(){}<>#%-/;!?*+&|~`'@:,=] is Literal
pdgreppe -Hjc "^$[].(){}<>#%-/;!?*+&|~`'@:,=" ere.def
...search for literal "^$[].(){}<>#%-/;!?*+&|~`'@:,=" does NOT work
because there are MAGIC rules for using MAGIC symbols (any of
^$[].(){}<>#%-/;!?*+&|~`'@:,=).
pdgreppe -Hjc -E "^$[].(){}<>#%-/;!?*+&|~`'@:,=" ere.def
..."^$[].(){}<>#%-/;!?*+&|~`'@:,="
finds
"^$[].(){}<>#%-/;!?*+&|~`'@:,="
because it is now a literal string by option -E.
pdgreppe -Hjc "\^\$\[\]\.\(\)\{\}\<\>\#\%\-\/\;\!\?\*\+\&\|\~\`\'\@\:\,\=" ere.def
..."\^\$\[\]\.\(\)\{\}\<\>\#\%\-\/\;\!\?\*\+\&\|\~\`\'\@\:\,\=" finds
"^$[].(){}<>#%-/;!?*+&|~`'@:,=" because it is now a literal string
WITHOUT option -E and with each MAGIC character escaped by "\".
Another way to have any magic character in
[^$[].(){}<>#%-/;!?*+&|~`'@:,=] or \
or non-magic character in
["_]
be interpreted as a literal character is to use its decimal
character number as shown by using PDGREPPE with option -I:
Special Character Decimal Numbers
Magic Symbol Escape Numbers:
! \033 Exclamation Point
# \035 Hash Mark
$ \036 Dollar Sign
% \037 Percent Sign
& \038 Ampersand
' \039 Trailing Single Quote
( \040 Left Parenthesis
) \041 Right Parenthesis
* \042 Asterisk
+ \043 Plus Sign
, \044 Comma
- \045 Minus Sign or Hyphen
. \046 Period or Full Stop
/ \047 Forward Slash or Division Sign
: \058 Colon
; \059 Semi-Colon
< \060 Left Pointer or Less-Than Sign
= \061 Equal Sign
> \062 Right Pointer or Greater-Than Sign
? \063 Question Mark
@ \064 At Symbol
[ \091 Left Square Bracket
\ \092 Back Slash
] \093 Right Square Bracket
^ \094 Caret or Exponent Sign
` \096 Leading Single Quote
{ \123 Left Curly Brace
| \124 Pipe Sign
} \125 Right Curly Brace
~ \126 Tilde
Non-Magic Symbol Escape Numbers:
" \034 Double Quote
_ \095 Underline
pdgreppe -Hjc "\33\63\42\43" ere.def
..."\33\63\42\43" finds "!?*+" because the pattern is a literal
string with each MAGIC Quantity character given as a decimal
number "\<n>".
" \034
One way to get around putting a double quote character into a
command line option is to use its escaped number equivalent
of \34 or \034 or simply \Q.
Also, the option
-jX<d> eXclude <d> of "^$[].(){}<>#%-/;!?*+&|~`'@:,=" from Magic like -E.
specifies a subset of magic symbols to be excluded from being
magic.
(If -jX<d> is used in conjunction with -E then <d> of -jX<d>
specifies the symbols that ARE considered Magic.)
Note:
If the last byte in a Command Line Pattern is a BackSlash that
is not ITSELF escaped by another single BackSlash, then the
BackSlash is entered as itself.
Also:
See the PDL Pattern Definition Language section on the use of
the BackSlash.
[ < < < Home ]
[ < < Reference Start ]
[ < Reference Contents ]
[ < Previous=PDGREPPE Double Bytes ]
[ Next=PDGREPPE Literal File > ]
© Intelligence Services 1987 - 2008
GPO Box 9, ADELAIDE SA 5001, AUSTRALIA
EMAIL : intlsvs@gmail.com