diff options
Diffstat (limited to 'subr.rtl/rtl_list.subr')
-rw-r--r-- | subr.rtl/rtl_list.subr | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/subr.rtl/rtl_list.subr b/subr.rtl/rtl_list.subr index e24973e9..07d401b8 100644 --- a/subr.rtl/rtl_list.subr +++ b/subr.rtl/rtl_list.subr @@ -143,6 +143,19 @@ rtl_lsearch() { printf "%s" "${_lnew}"; }; +rtl_lsearch_patternl() { + local _list="${1}" _pattern="${2}" _sep="${3:- }" IFS="${3:-${IFS:- }}"\ + _litem="" _lnew=""; + if [ -n "${_pattern}" ]; then + for _litem in ${_list}; do + if [ "${_litem#${_pattern}}" != "${_litem}" ]; then + _lnew="${_lnew:+${_lnew}${_sep}}${_litem}"; + fi; + done; + fi; + printf "%s" "${_lnew}"; +}; + rtl_lsort() { local _list="${1}" _sep="${2:- }"; printf "%s" "${_list}" | tr "${_sep}" "\n" | sort | paste -s -d "${_sep}"; |