Это может сработать для вас (GNU sed):
'sed -n '/category/{:a;N;/done/!ba;x;s/^/x/;/^x\{3\}$/{x;p;q};x}' file
Отключить автоматическую печать с помощью параметра -n
. Соберите линии между category
и done
. Храните счетчик в удержании и когда он достигает 3, напечатайте коллекцию в пространстве шаблонов и закройте.
Или, если вы предпочитаете awk:
awk '/^category/,/^done/{if(++m==1)n++;if(n==3)print;if(/^done/)m=0}' file
Вам нужно переместить ваши действия UI
на методы onPreExecute()
или onPostExecute()
, поскольку doInBackground
не может коснуться UI
. Я предлагаю вам вернуть строку или значение, которое вам нужно поместить в TextView
из метода doInBackground
, а затем применить его к TextView
в методе onPostExecute()
. Ссылка AsyncTask Описание