Как уже упомянул в своих комментариях dwag, что показанные вами образцы НЕ имеют какой-либо линии, которая удовлетворяет вашим условиям, поэтому вы НЕ видите ничего в выводе.Я также исправил 2 вещи (1-е: '{
место для awk
первого блока и 2-е: {
} добавлено для if
условия для более безопасной стороны).
Я также проверил ваш код (после применения небольших изменений, упомянутых выше), с еще одной строкой, как показано ниже, скажем, следующим является Input_file.
cat Input_file
build:chr:pos sample_1 sample_2 ...
38:1:189665 1 1
38:1:416546 0 0 ...
39:1:9999 1 2 ...
... ... ... ...
Теперь, когда я запускаю следующий код, он выдает следующий вывод:
awk -v upper_bound=100000 -v lower_bound=100 '{
split($1,a,":");
if (a[3] < upper_bound && a[3] >= lower_bound){
print $0}
}' file82836752
39:1:9999 1 2 ...
РЕДАКТИРОВАТЬ: Еще 1 мысль, проверьте cat -v Input_file
для вашего Input_file, если в случае, если он имеет символы CONTROL M, если да, то попробуйте удалить их, выполнив также tr -d '\r' < Input_file > temp_file && mv temp_file Input_file
.Просто еще одна мысль, если это тоже может быть проблемой.