С помощью gnu -find можно сделать:
find ${drt} -maxdepth 1 -type d -execdir command1 ";" -execdir command2 ";"
Обратите внимание, что не каждая реализация find имеет параметр -execdir.
Сравните первое поле без пробелов -со строкой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
.
В качестве альтернативы:
grep "^[[:blank:]]*3" logistic_results.assoc_3.logistic > logistic_results.assoc_3.logistic_chr3