Как заменить строку из одного файла на совпадение в другом?

Еще один сэд

sed 's/^#*\([^#]*\).*/\1/' infile

Если вы хотите удалить линии только с помощью####

sed 's/^#*\([^#]*\).*/\1/;/^$/d' infile
0
28.03.2020, 00:54
1 ответ
$ cat tst.awk
NR==FNR { map[$1,$2]=$5; next }
($1,$4) in map { $2=map[$1,$4]; print }

$ awk -f tst.awk FS=',' marker-info FS=' ' output11.bim
1 rs2980300 0 775852 T C
1 rs4245756 0 1120590 C A

или если вы предпочитаете установить FS на 2 отдельных значения в скрипте:

$ cat tst.awk
BEGIN { FS="," }
NR==FNR { map[$1,$2]=$5; next }
FNR==1 { FS=" "; $0=$0 }
($1,$4) in map { $2=map[$1,$4]; print }

$ awk -f tst.awk marker-info output11.bim
1 rs2980300 0 775852 T C
1 rs4245756 0 1120590 C A
1
19.03.2021, 02:31

Теги

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