Вы пытались установить Windows программное обеспечение с вином или пытался найти альтернативу Linux для программного обеспечения, например http://mitk.org/wiki/MITK ?
Взгляните на эту статью для получения списка программного обеспечения с открытым исходным кодом для медицинской визуализации. Вот еще один такой список в Европейском институте биомедицинских исследований изображений.
Я решил. Проблема здесь в том, что grep без других инструкций не может обрабатывать строки без их сортировки. Таким образом, выходной файл будет пустым, и, не знаю почему, grep создаст этот пустой файл, но с неправильным именем файла. (Кто-нибудь знает почему?)
Итак, вместо
$ grep -v -f
Я использовал
$ grep -F -x -v -f
Я действительно не понимаю, почему переменная PROJECT
не раскрывается должным образом в последней строке кода (, если только вы не ищете сгенерированный файл не в том месте ), но я вижу что вы неправильно двойные кавычки расширяете свои переменные. Отсутствие двойных кавычек может вызвать проблемы, если $PROJECT
содержит пробелы, символы новой строки или любой другой символ, характерный для оболочки.
Вы также прыгаете через множество обручей для чего-то, что можно было бы сделать с помощью одной awk
программы:
proj=$(<temp/project_name_final)
awk 'NR==FNR { species[$3]; next } /Bifidobacterium/ && !($2 in species) { print $2 }' \
"${proj}_species.txt" "${proj}_genera.txt" >"temp/${proj}_selected_Bif"
Эта awk
программа читает два файла ${proj}_species.txt
и ${proj}_genera.txt
. При чтении первого файла его третий столбец используется для создания ключа в ассоциативном массиве или хеше species
. Когда мы начинаем читать второй файл, нас интересуют только те строки, которые содержат строку Bifidobacterium
и второй столбец которых не является ключом в хеше species
. Для этих строк мы выводим второй столбец.
Весь вывод идет на temp/${proj}_selected_Bif
.
Обратите внимание на двойные кавычки всех раскрытий переменной proj
. Я использовал имя переменной в нижнем регистре -, поскольку переменные в верхнем регистре -зарезервированы для системных переменных и переменных среды оболочки.
См. также
Исходный файл содержит строку, оканчивающуюся на CR/LF. CR передается как часть переменной $PROJECT
, а поскольку CR является допустимым символом в имени файла, все промежуточные шаги работают правильно. (Но имена файлов "неправильные".)
Последний вывод также правильный, но CR в имени файла интерпретируется как принудительное возвращение курсора в начало строки, поэтому все, что вы видите, это _selected_Bif
.
Вы можете доказать это, удалив CR при чтении содержимого файла.