diff --git a/redacted.sh b/redacted.sh new file mode 100644 index 0000000..964439b --- /dev/null +++ b/redacted.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +default_rules=( + 's/[0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{3\}//g' + 's/\b[a-zA-Z0-9._-]\+\.[a-zA-Z]\{2,\}\b//g' + 's/\b[A-Za-z0-9+\/=]\{20,\}\b//g' + 's/\(password=\)\S\+/\1/g' +) + +rules=() +while [[ $1 =~ ^s/ ]]; do + rules+=("$1") + shift +done +[[ ${#rules[@]} -eq 0 ]] && rules=("${default_rules[@]}") + +sed_expr=() +for r in "${rules[@]}"; do + sed_expr+=( -e "$r" ) +done + +# If files are passed, process them to stdout. +# If none, read from stdin to stdout. +if [[ $# -gt 0 ]]; then + sed "${sed_expr[@]}" "$@" +else + sed "${sed_expr[@]}" +fi