Насколько я видел, нет конвенции. Если вы разрабатываете программу / скрипт, вам решать, как обрабатывать заказ. Например, команда find выдаст предупреждение, если я поместил аргумент, связанный с каталогом, после аргумента, связанного с именованием.
$ find /etc -iname "passwd" -maxdepth 1
find: warning: you have specified the -maxdepth option after a non-option argument -iname, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
/etc/passwd
Другим программам может не нравиться заказ. У меня есть простой скрипт getopts.sh, который я поддерживаю, когда мне нужно использовать аргументы командной строки в другом скрипте, и он анализирует аргументы в определенном порядке
$ getopts.sh test1 -w1 test2
Hello, I'm main
The arguments are test1 -w1 test2
Подход awk:
$ awk 'NR==FNR{a[$1]=$2; next} {split($1,b,/:/); $7=a[b[2]]}1;' b.txt a.txt
chr:1:10539:A:C 10539 C A 0.545987 0.508902 4972 0.36065 + 1
chr:2:13494:A:G 13494 A G 0.330493 0.0264746 4972 0.733423 + 1
chr:7:13494:A:G 13494 A G 0.330493 0.0264746 4970 0.733423 + 1
Подход awk:
$ awk 'NR==FNR{a[$1]=$2; next} {split($1,b,/:/); $7=a[b[2]]}1;' b.txt a.txt
chr:1:10539:A:C 10539 C A 0.545987 0.508902 4972 0.36065 + 1
chr:2:13494:A:G 13494 A G 0.330493 0.0264746 4972 0.733423 + 1
chr:7:13494:A:G 13494 A G 0.330493 0.0264746 4970 0.733423 + 1