сработало! Спасибо за ваш вклад! Символы в цикле с '' И переменная в команде с ''. Дай пять и большое спасибо! П
for C in '>AB123|x2'
do
sed -n -e '/'"$C"'/,/>/p' filename | sed -e '$d' >> output
done
(при условии, что во входных данных имеется только одно вхождение секции ).
Разве sed -я не ожидал файлов, а не строк? Вам не нужно было бы перебирать строки в первую очередь. Вы можете написать сценарий, который включает только фактические замены, и запустить свой сценарий, выполнив команду find -f.. -exec sed -i -f yourscript.sh {} \; Ваш текущий скрипт просто запустит sed со всей строкой в качестве аргумента. Если строка содержит специальные символы, такие как #или ; ваш сценарий будет сломан.