Не нужно wc
.
Установить $IFS
для временной вкладки в строке перед read
.
, которая исключит пробелы (c .f. " ab c ").
Читать в массив, и l oop каждый.
Проверьте длину> 8000 и ведите себя соответственно. Вот краткий пример, который вы можете адаптировать.
$: IFS=" " read -a lst < in
$: for x in "${lst[@]}"
> do l="${#x}"
> if (( l > 8000 ))
> then x='<too long>'
> fi
> printf "'%s' = %d\n" "$x" "$l"
> done
'hi' = 2
'a b c' = 5
'apple' = 5
'<too long>' = 10000
'toast' = 5
Если вы обрабатываете действительно большой файл, запишите его в awk
или perl
для повышения производительности.