Сценарий Bash для чтения нескольких файлов

<file sed '
   :start
   s/\n$//
   t
   s/\n //
   N
   b start
  ' | sed 's/,$//'

Первый sedвыполняет цикл (:start,b start)и добавляет строки к своему пространству шаблонов(N)до тех пор, пока не будет найдена и удалена новая строка в самом конце(s/\n$//). Это указывает на то, что была прочитана пустая строка, инструмент выходит из цикла, а затем(t). На каждой итерации любой оставшийся символ новой строки (и последовательный пробел )в любом случае удаляются для объединения строк(s/\n //).

Второй sedудаляет замыкающие запятые.

0
24.05.2021, 00:20
1 ответ

Как насчет того, чтобы решить это в 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.

0
28.07.2021, 11:29

Теги

Похожие вопросы