Это должно сделать это:
ps axhk comm
axe -- Показать все процессы в системе.
h -- Нет заголовка.
k comm -- Указывает порядок сортировки по командам.
При присвоении переменной filename
вы можете использовать утилиту basename
следующим образом:
filename="$( basename "$file" .bam )"
Это даст filename
значение myfile
, если $ file
, например, /my/data/myfile.bam
(т. е. будет удалите любой элемент пути, а также указанный суффикс).
Вы даже можете использовать
filename="/mynewpath/$( basename "$file" .bam )_chr.bam"
или
filename="$( printf '/mynewpath/%s_chr.bam' "$( basename "$file" .bam )" )"
В последних двух примерах вы позже будете использовать "$ filename"
вместо "/ mynewpath / $ {filename} _chr.bam "
для перенаправления.
Что касается sed
:
sed -e 's/SN:([0-9XY])/SN:chr\1/' -e 's/SN:MT/SN:chrM/'
Это вставит строку chr
в SN: X
, где X
- хромосома. имя, превращая его в SN: chrX
. Однако вам нужно будет либо использовать \ (... \)
вместо (...)
для группы захвата, либо добавить -E
параметр для вызова sed
, или вы получите сообщение об ошибке «недопустимая ссылка \ 1 в правой части команды` s '»(с GNU sed
) или« \ 1 не определено в RE »(с BSD sed
).