i
в сценарии AWK это переменная AWK, а не переменная оболочки; вам нужно установить переменную AWK:
#!/bin/bash
dirc="/a/b/"
echo "${dirc}" | awk -F / -v i=3 '{print $i}'
Вы можете указать значение i
любым способом, понятным оболочке:
i=3
echo "${dirc}" | awk -F / -v "i=${i}" '{print $i}'
Вы могли бы также заставить оболочку оценивать переменную в сценарии AWK, но это просто поиск проблем:
i=3
echo "${dirc}" | awk -F / "{print \$${i}}"
Это поведение по умолчаниюjoin
:
$ join <(sort file1) <(sort file2)
CN 70.55 618 CNGC Prote 703 2 3880
KN 82.546 1037 KN4 Kines 1033 2 1 3635
KN 82.849 1032 KN4 Kines 1033 2 1 3635
KN 82.946 1032 KN4 Kines 1033 2 1 3635
SC 61.92 625 SC7 SCARE 588 2 75702
SC 65.696 618 SC7 SCARE 588 2 75702