Я хочу использовать вложенный процесс подстановки с тройником в цикле while.
while read line; do
#process line
echo "--$line"
done < <(cat sample.file | tee >(grep "SPECLINE") | grep "LINESTOPROCESS")
Поэтому мне нужно:
- все строки в sample.file, которые содержат выражение «LINETOPROCESS», должны быть переданы в цикл, и они будут напечатаны с префиксом «-».
- все строки, содержащие «SPECLINE», должны быть напечатаны при первой замене процесса (в grep).
Я хочу не повторять образец. Файл более одного раза, так как он слишком большой и тяжелый.
С простым файлом sample.test:
line1 SPECLINE
line2 LINETOPROCESS
line3 LINETOPROCESS
line4 SPECLINE
line5 I don't need it
line6 also not
line7 also not
line8 SPECLINE
line9 LINETOPROCESS
Мой результат:
# ./test.sh
#
Мой желаемый результат:
# ./test.sh
line1 SPECLINE
--line2 LINETOPROCESS
--line3 LINETOPROCESS
line4 SPECLINE
line8 SPECLINE
--line9 LINETOPROCESS
Или я также могу принять это как вывод:
# ./test.sh
--line2 LINETOPROCESS
--line3 LINETOPROCESS
--line9 LINETOPROCESS
line1 SPECLINE
line4 SPECLINE
line8 SPECLINE
Update1
greps предназначены только для демонстрации.
Мне действительно нужны эти 2 замены.
- sample.file - это файл http.
- grep "SPECLINE" будет "hxselect -i -s ';' -c 'div.hour'
- grep "LINESTOPROCESS" будет "hxselect -i -s ';' -c 'div.otherclass' | hxpipe
hx программы не ориентированы на строки. Они читают из стандартного ввода и выводят в стандартный вывод.
Поэтому первая команда тройника выберет div с классом 'hour' и отделит их с помощью ';'. После этого труба после тройника выберет все div с классом 'otherclass', а hxpipe сгладит его для цикла для дальнейшей обработки.