Попробуйте цикл while read
:
echo '10 0-9{3}
4 0-9{3}
7 0-9{3}' |
while IFS=' ' read -r num item; do
if (( num >= 50 )); then
some_action with "$item"
fi
done
Обратите внимание, что в bash цикл обычно очень медленный. Более быстрое решение состоит в том, чтобы сначала отфильтровать строки с первым столбцом, большим или равным 50, затем удалить первый столбец и затем выполнить some_action, используя xargs (или даже передать -P0
в xargs для параллельной работы):
echo '10 0-9{3}
4 0-9{3}
7 0-9{3}' |
awk '$1 >= 50' |
cut -d' ' -f2- |
xargs -n1 some_action with