Нет необходимости в awk, если файлы отсортированы, вы можете использовать соединение с coreutils:
join -o '2.2 1.2 1.3 1.4 1.5' file1 file2
Выход:
GCF_000014165.1_ASM1416v1_protein.faa WP_011558474.1 1155234 1156286 44173
GCF_000014165.1_ASM1416v1_protein.faa WP_011558475.1 1156298 1156807 12
GCF_000014165.1_ASM1416v1_protein.faa WP_011558476.1 1156804 1157820 -3
GCF_000015405.1_ASM1540v1_protein.faa WP_011558474.1 1159543 1160595 42748
GCF_000015405.1_ASM1540v1_protein.faa WP_011558475.1 1160607 1161116 12
GCF_000015405.1_ASM1540v1_protein.faa WP_011558476.1 1161113 1162129 -3
GCF_000016005.1_ASM1600v1_protein.faa WP_011559727.1 2481079 2481633 8
GCF_000016005.1_ASM1600v1_protein.faa WP_011854835.1 1163068 1164120 42559
GCF_000016005.1_ASM1600v1_protein.faa WP_011854836.1 1164127 1164636 7
Если ваши файлы не отсортированы, вы можете либо сначала отсортировать их (sort file1 > file1.sorted; sort file2 > file2.sorted
), а затем использовать приведенную выше команду, либо, если ваша оболочка поддерживает конструкцию <()
(, bash поддерживает ), вы можете делать:
join -o '2.2 1.2 1.3 1.4 1.5' <(sort file1) <(sort file2)
Ответ для Ubuntu.
Command 'pip2' not found
Вам необходимо установить пакетpip2
(для Ubuntu Xenial и Bionic):
sudo apt install python-pip
Или используйте следующую команду (Кроме Xenial и Bionic):
sudo apt install python2 # already done
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2 get-pip.py
Для установкиmechanize
:
pip2 install mechanize
или:
python2 -m pip install mechanize
pip2
уже не включен в репозиторий пакетов некоторых дистрибутивов (, включая Ubuntu 20.04 ). Для установки запустите этот скрипт как sudo
.
Кроме того, сценарий кажется не в bash
, а просто в старом Python 2, в котором используется оператор print
вместо аналога-функции в Python 3. Если это единственная проблема, вы можете просто использовать регулярное выражение для замены строк.