Вы можете сделать:
IFS=: # split on :
set -f # disable glob part of the split+glob operator
echo find . $(
awk -F: '
{
printf "%s", sep "(:-user:" $1 ":-name:" $2 ":):"
sep = "-o:"
}' < "$uidfile")
(удалить ECHO
, если это правильная команда, которую вы хотите запустить).
Вы должны использовать \zs
в качестве разделителя для разбиения строки на отдельные символы:
:echo split("Hello", '\zs')
['H', 'e', 'l', 'l', 'o']