[ < < < 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