Описание тега mold
Вы хотите, чтобы извлечь все строки первого файла первый столбец которого соответствует столбцу в ваш второй файл.
Поскольку первый файл, кажется, содержать только текст в первом столбце (и остальные цифры), мы могли бы просто использовать команду grep
для этого.
В Баш
или любой другой оболочки, которая понимает процесс замены, это было бы дело
грэп -ф-ф <( на awk -Ф 'НР > 1 { печати $1 }' <файл2 ) файл1 >файл
В других оболочках, вы бы сначала писать выход на awk
команды во временный файл, а затем использовать, что с грэп -Ф
.
В awk и
будет генерировать результат
p10_1003_length_529_cov_12.940299
p10_1021_length_525_cov_6.801508
p10_1047_length_521_cov_4.852792
p10_1152_length_501_cov_22.430481
p10_139_length_1152_cov_892.463415
p10_149_length_1130_cov_7.540379
и грэп
бы использовать их в качестве фиксированных шаблонов строк в матче против каждой строки в ваш первый файл.
Вы могли бы сделать это все на awk
, который будет включать значение в первом столбце второй файл первый, а ключи в ассоциативном массиве, а затем тестирование в первом столбце первого файла с этими ключами:
на awk -Ф 'ШП==ФНР && ФНР>1 { ключи[функции sprintf("\"%з\"", $1)] }
ШП!=ФНР && ФНР>1 && ($1 в ключах)' файл2 файл1
Странные функции sprintf()
есть, потому что первый столбец в файл file1
имеет двойные кавычки. Он просто добавляет двойные кавычки для данных, считанных из файла file2
.
В ФНР>1
пропускает заголовки файлов при ШП==ФНР
- это верно, если мы будем читать из файла file2
.