Переменная Bash с символами новой строки, которые неправильно отображаются в CSV-файле - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь вставить текстовый вывод команды linux в одну ячейку CSV-файла.Независимо от того, как я пытаюсь экранировать кавычки, символы новой строки, похоже, не регистрируются в файле csv.

Например, если вывод одной из этих команд:

155 C T
2518 T C

Он печатается в ячейке csv как:

155 C T 2518 T C
for filename in "$1"/*JGI*.vcf; do
    counter=$((counter + 1))

    depth_score="$(samtools depth "${filename%.*}.bam" | python depth.py)"
    variant_array="$(bcftools query -f '%POS %REF %ALT\n' "$filename")"
    column_name="$(basename "$filename")"

    echo "$counter/$total_colonies" # echo current/total
    echo "$variant_array"
    echo ""$variant_array""
    echo "$column_name, "$variant_array", $depth_score" >> output.csv
done

Вот цикл for, который дает мне несколько ошибок.

Проблема $variant_array - это проблема.

У меня есть два журнала печати выше, где я пишу в output.csv, чтобы увидеть, что происходит.

"$variant_array" дает желаемое поведение, но по какой-то причине, когда я повторяю это в другомнабор кавычек, чтобы записать его в CSV-файл, он игнорирует символы новой строки ...

Ответы [ 2 ]

2 голосов
/ 24 мая 2019

Цитаты не избегают этого пути ... Так что, возможно, следующее будет работать для вас?

echo '"'"$variant_array"'"'
echo "$column_name", '"'"$variant_array"'"', "$depth_score" >> output.csv

Вот еще одна форма кавычек:

echo \""$variant_array"\"
echo "$column_name", \""$variant_array"\", "$depth_score" >> output.csv

Вот еще одна идея:

echo "\"$variant_array\""
echo "$column_name, \"$variant_array\", $depth_score" >> output.csv
0 голосов
/ 24 мая 2019

Проблема в том, что $variant_array - это , а не"в другом наборе кавычек".Это полностью без кавычек.

Заменить:

echo "$column_name, "$variant_array", $depth_score" >> output.csv

на:

echo "$column_name", "$variant_array", "$depth_score" >> output.csv

или, еще проще:

echo "$column_name, $variant_array, $depth_score" >> output.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...