Почему поведение ERR-ловушки отличается от версий bash 3 и 4?

grep '^[^:]\+::' /etc/shadow ничего не покажет, потому что шаблон Regex неправильный.

Я предполагаю, что вам нужно найти пользователей без пароля, т.е. системные учетные записи. В таком случае сделайте:

grep '^[^:]\+:.:' /etc/shadow

Давайте разложим это на части:

  • ^[^:]\+ найдет часть от начала строки до следующего :, т.е. имя пользователя

  • За именем пользователя будет следовать :, любой отдельный символ, указанный Regex маркером . (возможно, ! или *), а затем :.

0
19.02.2019, 21:47
1 ответ

Как писал @Kusalananda, этот вопрос лучше задавать наhttps://bioinformatics.stackexchange.com/. Может быть, кто-то сможет перенести этот вопрос туда?

Создайте текстовый файл, в каждой строке которого вы пишете старое имя и желаемое новое имя, разделенные пробелом.

$ cat names.txt
SRR2481146_1 HCT116_DMSO
SRR2481151_1 SW_DMSO

Используйте bcftools reheader , чтобы изменить имена сэмплов следующим образом:

$ bcftools reheader -s names.txt file.vcf > file_renamed.vcf

Вы можете использовать gnu parallel для запуска этой команды для всех vcfфайлов в папке:

$ parallel 'bcftools reheader -s names.txt {} > {.}_renamed.vcf' ::: *.vcf
2
28.01.2020, 02:40

Теги

Похожие вопросы