Практикум 4
Задание 2
Согласно материалам Gallerix, найденным с помощью Google Images, это картина кисти чешского художника Зденека Буриана, которая называется «Игуанодон». Файл был скопирован в память iPad в графическом интерфейсе программы Termius. При вводе имени хоста, порта, имени пользователя и пароля открывался доступ к просмотру, скачиванию и удалению из домашней директории и нижестоящих файлов, параметры доступа которых предполагали эти возможности.
задание 3
Для нахождения количества файлов в папке /P/y20/term1/pr4/files был использован конвейер из команд ls и wc, где ls возвращал имена файлов, а wc, во второй колонке, - количество слов, что соответствовало искомому количеству файлов. Без флага ls выдавал лишь имена тех файлов, которые не начинались с точки.
$ cd /P/y20/term1/pr4/files $ ls | wc 88 88 1132
Для подсчета всех файлов в данной директории, включая системные, была использована опция -a для ls.
$ ls -a | wc 93 93 1168
Для рекурсивного подсчета файлов во всех нижестоящих директориях была использована опция -R. Вывод символов :. командой ls -R заставил wc также подсчитать их. Так как число возросло лишь на 1, то количество выведенных ls файлов осталось прежним: 88.
$ ls -R | wc 89 89 1135
И, наконец, для подсчета всех файлах данной директории и нижестоящих, включая системные были использованы опции -Ra. Так как опция -R в первой строчке выдает символы .:, wc их также подсчитал. Так как кажущееся число файлов возросло на 1, то иных файлов в нижестоящих директориях не было, исключая недоступные директории . и ... Таким образом выведенных файлов все еще 93.
$ ls -Ra | wc 94 94 1171
Итого файлов в данной директории:
|
Не включая системные |
Включая начинающиеся с . и .. |
|
Не включая поддиректории |
88 |
93 |
|
С рекурсивным подсчетом |
88 |
93 |
Для подсчета файлов с расширением .txt был использован конвейер из find и wc. Флаг -name позволял найти файлы, имя которых оканчивалось на .txt. Таковых в данной директории оказалось 14.
$ find -name "*.txt" | wc 14 14 193
Для объединения всех файлов из /P/y20/term1/pr4/files с расширением .fasta в один файл, помещаемый в директорию ~/term1/block1/credits/Xxxx_all.fasta, была использована команда cat, поток вывода которой был перенаправлен в новый файл.
$ cat *.fasta > ~/term1/block1/credits/Nikonov_all.fasta
Задание 4
Для объединения имен всех последовательностей, маркируемых символом >, в один файл была использована команда grep, поток вывода которой был перенаправлен в новый файл.
$ cd ~/term1/block1/credits $ grep '^>' Nikonov_all.fasta > Nikonov_all.names
Для подсчета строк, начинающихся на >, файлов с расширением .fasta из директории /P/y20/term1/pr4/files была использована команда grep с флагами -c для подсчета искомых строк во всех файлах с расширением .fasta.
$ cd /P/y20/term1/pr4/files $ grep -c '^>' *.fasta 1.fasta:1 Xax229_230.fasta:2 pan1_mouse.fasta:1 pan3_mouse.fasta:1
Для подсчета числа атомов гистидина в структуре белка из выбранного файла 1MNM.pdb был использован конвейер из двух grep, последний из которых вводился с флагом -с.
kodomo:~> cd /P/y08/Term_5/Materials/ cd /P/y08/Term_5/Materials/ kodomo:/P/y08/Term_5/Materials> ls ls 1DLP.pdb 1GT0.pdb 1KMY.pdb 1MNM.pdb 2B5A.pdb 2b5a.omap 5RXN.pdb 7GPB.pdb AA_residues.gif kodomo:/P/y08/Term_5/Materials> grep '^ATOM' 1MNM.pdb | grep -c 'HIS' grep '^ATOM' 1MNM.pdb | grep -c 'HIS' 60 kodomo:/P/y08/Term_5/Materials>
Более короткий вариант предполагал использование egrep с логической операцией AND.
kodomo:/P/y08/Term_5/Materials> egrep -c '^ATOM.*HIS' 1MNM.pdb 60
И в более современной формулировке:
kodomo:/P/y08/Term_5/Materials> grep -Ec '^ATOM.*HIS' 1MNM.pdb 60
egrep используется для того, чтобы вместо базового регулярного выражения можно было подставить расширенное. Это позволяет распознавать по умолчанию несколько дополнительных символов как спецсимволы. В данном случае .* указывает на то, что сочетание литералов ATOM может встречаться в начале строки (так как перед ATOM стоит ^) один раз или более. Очевидно, что любая заданная последовательность литералов может встретиться в начале строки не более одного раза.