Скажем, у вас есть (многострочный) здесь строку с именем $cnt
:Разбивает строку и передать отдельные строки в цикл в Баш
Foo
X
Y
Z
Foo
A
B
C
D
Одна строка может регулярное выражение в несколько plarts с awk
следующим образом:
awk '/Foo/{i++}{print > "dat"i}' <<<"$cnt"
в результате большое количество файлов dat1
, dat2
...
Но другая часть s строки должны быть обработаны с помощью дополнительных команд, так можно, конечно, определить for
цикл:
for f in "dat*"
do
#commands to process $f file
done
Файлы, однако, не является хорошим решением для промежуточных результатов, так как они медленно, глобальные (они могут взаимодействовать с другими файлы), используйте больше памяти (поскольку все файлы сгенерированы первыми, тогда как итеративный подход может повторно использовать память, выпущенную после обработки предыдущего фрагмента), ... Поэтому было бы лучше, если бы обрабатывать экземпляры как переменные. Есть ли удобный способ сделать это.
Обратите внимание, что различные детали могут содержать новые линии, поэтому недостаточно для линий read
.
Первый срез для процесса, таким образом:
Foo
X
Y
Z
Второй срез должен быть:
Foo
A
B
C
D