grep '^[^:]\+::' /etc/shadow
ничего не покажет, потому что шаблон Regex неправильный.
Я предполагаю, что вам нужно найти пользователей без пароля, т.е. системные учетные записи. В таком случае сделайте:
grep '^[^:]\+:.:' /etc/shadow
Давайте разложим это на части:
^[^:]\+
найдет часть от начала строки до следующего :
, т.е. имя пользователя
За именем пользователя будет следовать :
, любой отдельный символ, указанный Regex маркером .
(возможно, !
или *
), а затем :
.
Как писал @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