#!/bin/bash cnt=$(cat) printf '%s\n' "${cnt}" \ | sed "$( printf '%s\n' "${cnt}" \ | sed ' s,^.*%STR_\(MIX\|MAX\|NOT\)\(\( [0-9]\+\)*\)%.*$,\2, t d ' \ | sort -u \ | while read -r l; do found_missing=0 found_present=0 for i in $(seq 1 "$1"); do if ! printf '%s\n' "${i}" \ | grep -xq "$2"; then continue fi if printf '%s\n' "${l}" \ | grep -wqF "${i}"; then found_present=1 else found_missing=1 fi done printf '%s %s %s\n' "${found_present}" "${found_missing}" "${l}" done \ | sed ' s/^1 1/MIX/ s/^0 1/NOT/ s/^1 0/MAX/ t d ' \ | sed ' s/^.*$/s@%STR_\0%@@/ ' )"