tr(1) -sd G-Z
translate or delete characters
-s, --squeeze-repeats
       replace  each  input  sequence  of  a  repeated  character  that  is  listed in SET1 with a single
       occurrence of that character
-d, --delete
       delete characters in SET1, do not translate
tr [OPTION]... SET1 [SET2]

Translate, squeeze, and/or delete characters from standard input, writing to standard output.

SETs are specified as strings of characters.  Most represent themselves.  Interpreted sequences are:

\NNN   character with octal value NNN (1 to 3 octal digits)

\\     backslash

\a     audible BEL

\b     backspace

\f     form feed

\n     new line

\r     return

\t     horizontal tab

\v     vertical tab

CHAR1-CHAR2
       all characters from CHAR1 to CHAR2 in ascending order

[CHAR*]
       in SET2, copies of CHAR until length of SET1

[CHAR*REPEAT]
       REPEAT copies of CHAR, REPEAT octal if starting with 0

[:alnum:]
       all letters and digits

[:alpha:]
       all letters

[:blank:]
       all horizontal whitespace

[:cntrl:]
       all control characters

[:digit:]
       all digits

[:graph:]
       all printable characters, not including space

[:lower:]
       all lower case letters

[:print:]
       all printable characters, including space

[:punct:]
       all punctuation characters

[:space:]
       all horizontal or vertical whitespace

[:upper:]
       all upper case letters

[:xdigit:]
       all hexadecimal digits

[=CHAR=]
       all characters which are equivalent to CHAR
source manpages: tr