# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*username\|username[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_username[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*username\|username[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_username[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*username\|username[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_username[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*username\|username[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_username[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*username\|username[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_username[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*username\|username[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_username[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*username\|username[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_username[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*username\|username[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_username[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*username\|username[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_username[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*username\|username[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_username[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*user\|user[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_user[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*user\|user[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_user[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*user\|user[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_user[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*user\|user[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_user[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*user\|user[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_user[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*user\|user[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_user[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*user\|user[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_user[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*user\|user[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_user[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*user\|user[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_user[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*user\|user[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_user[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*password\|password[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_password[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*password\|password[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_password[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*password\|password[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_password[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*password\|password[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_password[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*password\|password[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_password[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*password\|password[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_password[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*password\|password[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_password[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*password\|password[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_password[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*password\|password[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_password[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*password\|password[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_password[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*psk\|psk[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_psk[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*psk\|psk[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_psk[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*psk\|psk[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_psk[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*psk\|psk[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_psk[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*psk\|psk[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_psk[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*psk\|psk[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_psk[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*psk\|psk[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_psk[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*psk\|psk[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_psk[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*psk\|psk[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_psk[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*psk\|psk[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_psk[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*key\|key[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_key[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*key\|key[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_key[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*key\|key[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_key[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*key\|key[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_key[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*key\|key[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_key[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*key\|key[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_key[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*key\|key[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_key[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*key\|key[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_key[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*key\|key[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_key[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*key\|key[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_key[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*token\|token[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_token[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*token\|token[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_token[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*token\|token[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_token[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*token\|token[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_token[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*token\|token[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_token[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*token\|token[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_token[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*token\|token[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_token[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*token\|token[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_token[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*token\|token[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_token[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*token\|token[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_token[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*secret\|secret[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_secret[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*secret\|secret[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_secret[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*secret\|secret[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_secret[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*secret\|secret[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_secret[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*secret\|secret[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_secret[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*secret\|secret[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_secret[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*secret\|secret[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_secret[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*secret\|secret[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_secret[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*secret\|secret[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_secret[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*secret\|secret[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_secret[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*passphrase\|passphrase[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_passphrase[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*passphrase\|passphrase[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_passphrase[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*passphrase\|passphrase[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_passphrase[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*passphrase\|passphrase[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_passphrase[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*passphrase\|passphrase[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_passphrase[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*passphrase\|passphrase[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_passphrase[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*passphrase\|passphrase[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_passphrase[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*passphrase\|passphrase[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_passphrase[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*passphrase\|passphrase[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_passphrase[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*passphrase\|passphrase[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_passphrase[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*wep\|wep[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wep[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*wep\|wep[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wep[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*wep\|wep[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wep[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*wep\|wep[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wep[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*wep\|wep[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wep[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*wep\|wep[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wep[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*wep\|wep[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wep[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*wep\|wep[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wep[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*wep\|wep[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wep[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*wep\|wep[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wep[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*wpa\|wpa[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wpa[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*wpa\|wpa[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wpa[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*wpa\|wpa[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wpa[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*wpa\|wpa[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wpa[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*wpa\|wpa[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wpa[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*wpa\|wpa[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wpa[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*wpa\|wpa[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wpa[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*wpa\|wpa[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wpa[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*wpa\|wpa[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wpa[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*wpa\|wpa[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_wpa[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*signature\|signature[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_signature[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*signature\|signature[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_signature[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*signature\|signature[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_signature[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*signature\|signature[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_signature[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*signature\|signature[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_signature[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*signature\|signature[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_signature[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*signature\|signature[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_signature[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*signature\|signature[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_signature[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*signature\|signature[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_signature[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*signature\|signature[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_signature[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*community\|community[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_community[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*community\|community[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_community[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*community\|community[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_community[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*community\|community[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_community[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*community\|community[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_community[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*community\|community[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_community[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*community\|community[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_community[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*community\|community[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_community[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*community\|community[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_community[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*community\|community[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_community[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*anonymous_device_id\|anonymous_device_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymous_device_id[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*anonymous_device_id\|anonymous_device_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymous_device_id[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*anonymous_device_id\|anonymous_device_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymous_device_id[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*anonymous_device_id\|anonymous_device_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymous_device_id[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*anonymous_device_id\|anonymous_device_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymous_device_id[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*anonymous_device_id\|anonymous_device_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymous_device_id[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*anonymous_device_id\|anonymous_device_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymous_device_id[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*anonymous_device_id\|anonymous_device_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymous_device_id[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*anonymous_device_id\|anonymous_device_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymous_device_id[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*anonymous_device_id\|anonymous_device_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymous_device_id[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*anonid\|anonid[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonid[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*anonid\|anonid[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonid[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*anonid\|anonid[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonid[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*anonid\|anonid[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonid[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*anonid\|anonid[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonid[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*anonid\|anonid[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonid[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*anonid\|anonid[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonid[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*anonid\|anonid[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonid[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*anonid\|anonid[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonid[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*anonid\|anonid[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonid[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*anon_id\|anon_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anon_id[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*anon_id\|anon_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anon_id[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*anon_id\|anon_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anon_id[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*anon_id\|anon_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anon_id[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*anon_id\|anon_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anon_id[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*anon_id\|anon_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anon_id[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*anon_id\|anon_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anon_id[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*anon_id\|anon_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anon_id[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*anon_id\|anon_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anon_id[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*anon_id\|anon_id[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anon_id[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*anonymousDeviceId\|anonymousDeviceId[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymousDeviceId[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*anonymousDeviceId\|anonymousDeviceId[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymousDeviceId[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*anonymousDeviceId\|anonymousDeviceId[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymousDeviceId[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*anonymousDeviceId\|anonymousDeviceId[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymousDeviceId[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*anonymousDeviceId\|anonymousDeviceId[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymousDeviceId[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*anonymousDeviceId\|anonymousDeviceId[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymousDeviceId[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*anonymousDeviceId\|anonymousDeviceId[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymousDeviceId[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*anonymousDeviceId\|anonymousDeviceId[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymousDeviceId[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*anonymousDeviceId\|anonymousDeviceId[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymousDeviceId[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*anonymousDeviceId\|anonymousDeviceId[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_anonymousDeviceId[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*PrivateKey\|PrivateKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PrivateKey[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*PrivateKey\|PrivateKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PrivateKey[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*PrivateKey\|PrivateKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PrivateKey[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*PrivateKey\|PrivateKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PrivateKey[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*PrivateKey\|PrivateKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PrivateKey[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*PrivateKey\|PrivateKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PrivateKey[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*PrivateKey\|PrivateKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PrivateKey[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*PrivateKey\|PrivateKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PrivateKey[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*PrivateKey\|PrivateKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PrivateKey[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*PrivateKey\|PrivateKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PrivateKey[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*PublicKey\|PublicKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PublicKey[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*PublicKey\|PublicKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PublicKey[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*PublicKey\|PublicKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PublicKey[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*PublicKey\|PublicKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PublicKey[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*PublicKey\|PublicKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PublicKey[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*PublicKey\|PublicKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PublicKey[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*PublicKey\|PublicKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PublicKey[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*PublicKey\|PublicKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PublicKey[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*PublicKey\|PublicKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PublicKey[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*PublicKey\|PublicKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PublicKey[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
# JSON string value -> "<FILTERED>"
s/"\(\(auth[_]*PresharedKey\|PresharedKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PresharedKey[_A-Za-z0-9]*\)\)"\s*:\s*"\([^"]*\)"/"\1": "<FILTERED>"/gI

# JSON empty array value -> "<FILTERED>"
s/"\(\(auth[_]*PresharedKey\|PresharedKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PresharedKey[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*\([,}\]]\)/"\1": "<FILTERED>"\2/gI
s/"\(\(auth[_]*PresharedKey\|PresharedKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PresharedKey[_A-Za-z0-9]*\)\)"\s*:\s*\[\]\s*/"\1": "<FILTERED>"/gI

# JSON non-string primitive (number/true/false/null) WITH a trailing separator
s/"\(\(auth[_]*PresharedKey\|PresharedKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PresharedKey[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*\([,}\]]\)/"\1": "<FILTERED>"\2/gI

# JSON non-string primitive (number/true/false/null) at end-of-line (no trailing separator)
s/"\(\(auth[_]*PresharedKey\|PresharedKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PresharedKey[_A-Za-z0-9]*\)\)"\s*:\s*[^"[:space:]\[{][^],}]*/"\1": "<FILTERED>"/gI

# Shell / INI (line start)
s/^\(\(auth[_]*PresharedKey\|PresharedKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PresharedKey[_A-Za-z0-9]*\)\)\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# Shell inline
s/\b\(\(auth[_]*PresharedKey\|PresharedKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PresharedKey[_A-Za-z0-9]*\)\)\b\s*=\s*[^#[:space:]]*/\1=<FILTERED>/gI

# UCI
s/\(\(auth[_]*PresharedKey\|PresharedKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PresharedKey[_A-Za-z0-9]*\)\)\s*'[^']*'/\1 '<FILTERED>'/gI

# Log line
/^\s*\(auth[_]*PresharedKey\|PresharedKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PresharedKey[_A-Za-z0-9]*\)\s*[:=]/ s/\b\(\(auth[_]*PresharedKey\|PresharedKey[_A-Za-z0-9]*\|[A-Za-z0-9]\{1,\}_PresharedKey[_A-Za-z0-9]*\)\)\b\s*[:=]\s*['"]\?[^[:space:]'"]\+['"]\?/\1 <FILTERED>/gI
