Разница в bash при использовании jupyter с ipython против R (irkernel) - PullRequest
0 голосов
/ 11 июня 2018

У меня есть блокнот jupyter / ipython со следующим сценарием bash, использующий %% magic, который работает для поиска в каталоге и применения команды к файлам с расширением "bam"

%%bash
cd ../data/raw/Alignment_Files/
echo "starting"
for file in *; do
    echo "testing" $file
    if [[ $file = *bam ]]; then
        echo "Processing" $file
        # do something interesting...
    fi
done

Iя пытаюсь перенести его на другой ноутбук, используя ядро ​​R (irkernel), и придумал этот

system('cd ../data/raw/Alignment_Files/
echo "starting"
for file in *; do
    echo "testing" $file
    if [[ $file = *bam ]]; then
        echo "Processing" $file
        # do something interesting...
    fi
done',
intern=TRUE)

Однако цикл if / then не работает, и я пробовал много вариантов снет успехаВерсия R предоставляет отладочные сообщения «старт» и «тестирование», но цикл if никогда не выполняется.Я думаю, что персонажу нужно сбежать, но я не могу этого понять.

1 Ответ

0 голосов
/ 11 июня 2018

Благодаря комментарию Эрика Ренуфа я нашел решение, используя инструменты оболочки (grep), а не что-то специфичное для bash.Поскольку irkernel использует системную оболочку, а не bash.

system('cd ../data/raw/Alignment_Files/
echo "starting"
for file in *; do
    echo "testing" $file
    if echo "$file" | grep "bam$"; then
        echo "Processing" $file
        # do something interesting...
    fi
done',
intern=TRUE)
...