<file sed '
:start
s/\n$//
t
s/\n //
N
b start
' | sed 's/,$//'
Первый sed
выполняет цикл (:start
,b start
)и добавляет строки к своему пространству шаблонов(N
)до тех пор, пока не будет найдена и удалена новая строка в самом конце(s/\n$//
). Это указывает на то, что была прочитана пустая строка, инструмент выходит из цикла, а затем(t
). На каждой итерации любой оставшийся символ новой строки (и последовательный пробел )в любом случае удаляются для объединения строк(s/\n //
).
Второй sed
удаляет замыкающие запятые.
Как насчет того, чтобы решить это в R вот так,
комбинированный.R:
source (tr1.R)
source (tr2.R)
source (tr3.R)
или вот так.
комбинированный.R:
for (i in c(1:9)) {
filename <- paste ("tr", i, ".R", sep="")
if (file.exists (filename)) {
source (filename)
}
}
А потом можно загрузитьcombined.R
:
#!/bin/bash
#PBS -l nodes=1:ppn=10,walltime=00:05:00
#PBS -M
#PBS -m e
module load R/4.0
Rscript ~/combined.R
О, теперь я вижу, что вы хотите запускать задания параллельно. Решение, которое я опубликовал, не запускает задания параллельно, но я оставлю ответ здесь. Может кому пригодится. Может быть, вы можете применить что-то вроде этогоhttps://www.blasbenito.com/post/02_parallelizing_loops_with_r/или этого https://stackoverflow.com/questions/38318139/run-a-for-loop-in-parallel-in-r.