Как извлечь из файла все строки, начинающиеся с определенного числа?

С помощью gnu -find можно сделать:

find ${drt} -maxdepth 1 -type d -execdir command1 ";" -execdir command2 ";"

Обратите внимание, что не каждая реализация find имеет параметр -execdir.

0
20.04.2020, 22:11
2 ответа

Сравните первое поле без пробелов -со строкой3:

awk '$1 == "3"' logistic_results.assoc_3.logistic >logistic_results.assoc_3.logistic_chr3

Проблема с вашими командами заключается в том, что вы ожидаете, что 3будет первым символом в строке, но, судя по вашим примерам данных, перед числом может быть пробел. Использование awkс разделителем поля по умолчанию поместит имя хромосомы в $1независимо от начальных пробельных символов.

Это также было бы безопаснее, поскольку $1 == "1"будет верным только для хромосомы 1, тогда как регулярное выражение, соответствующее 1в начале поля (, например. с /^[[:blank:]]*1/или$1 ~ /^1/)также будет соответствовать, например. 11и 12.

6
19.03.2021, 02:27

В качестве альтернативы:

grep "^[[:blank:]]*3" logistic_results.assoc_3.logistic > logistic_results.assoc_3.logistic_chr3
0
19.03.2021, 02:27

Теги

Похожие вопросы