Код на Python в скрипт на Bash
У меня есть скрипт на баше:
#!/bin/bash
# Переменная BAM_FILE будет содержать список всех bam-файлов в текущей директории
BAM_FILE=$(ls *.bam)
for FILE in ${BAM_FILE}; do
# Имя файла без расширения
NAME=$(basename ${FILE} .bam)
# Получаем fastq 1 и 2
samtools fastq -1 ${NAME}_R1.fastq -2 ${NAME}_R2.fastq ${NAME}_hlareg.bam
Далее часть кода выполняется на Python. Как мне интегрировать его в скрипт? Я делаю вот так, но output-файлы на создаются:
python -c '
import sys
def sync_fastq_files():
file1 = "${NAME}_R1.fastq"
file2 = "${NAME}_R2.fastq"
output_file1 = "${NAME}_R1_sync.fastq"
output_file2 = "${NAME}_R2_sync.fastq"
with open(file1, "r") as f1, open(file2, "r") as f2, \
open(output_file1, "w") as out1, open(output_file2, "w") as out2:
while True:
......
'
Отдельно код на питоне работает, когда вместо file1, file2, output_file1, output_file2 прописать название самих файлов (например, тестовых двух файлов), но мне нужно, чтобы код работал для всех файлов в директории, содержащих ${NAME} в названии.
Источник: Stack Overflow на русском