Изучение руководств команд bash
С помощью команды "man cut" изучено руководство команды bash "cut" и описаны 5 ее опций.
Команда "cut"
Команда "cut" позволяет удалить некоторые участки с каждой строки файла по одному правилу для всех строк. Нам она может пригодиться, например, для чтения записей белков в разных базах данных. К примеру, с помощью команды "cut" удобно читать строки FT записи UniProt, где мы знаем смысловую нагрузку разных диапазонов (столбцов) элементов.
У команды множество опций, но ниже рассмотрены самые, на мой взгляд, практичные применимо к нашей работе с bash.
⍟ -b - выбрать только байты;
⍟ -c - выбрать только символы;
⍟ -f - выбрать только данные (элементы форматирования текста - столбцы, колонки - это все), напечатать любую строку, которая не содержит символ-разделитель, если не указана опция -s;
⍟ -s - выбрать только строки с разделителями, не печатать строки, не содержащие разделителей;
⍟ -d - выбрать строки с разделителями, не являющиеся знаками табуляции.
Рассмотрим подробнее параметры команд и простые примеры.
Опция -c
Допустим, нам захотелось выделить какие-то символы в каком-то файле (естественно, построчно). Пусть это будет файл file, содержащий 3 строки "abcdef", и мы хотим выделить 2 и 3 символы в строках.Для этого в командную строку пишем:
cut -c 2,3 file
и на выходе получаем:
bc
bc
bc
Если надо выбрать диапазон, то указываем номера первого и последнего символов в диапазоне, а между ними ставим тире:
cut -c 3-5 file
получим:
cde
cde
cde
Диапазоны можно разделять запятыми. Еще можно оставлять только одну границу диапазона, например, если написать 3-, то останутся символы строк с 3 до последнего включительно, если -3, то с первого до третьего включительно.
Опция -b
В большинстве случаев 1 символ определяется 1 байтом, поэтому, по аналогии с предыдущей опцией (-с), при запросе таких-то байтов будем получать такие-то (соответствующие номерам) символы.Например, в том же файле file хотим выбрать первые 4 байта в каждой строчке, тогда в командную строку запишем:
cut -b 1-4 file
результат будет такой:
abcd
abcd
abcd
Здесь важно быть осторожным, не всегда количество видимых символов равно количеству байт, так как, например, tab и backspace тоже занимают 1 байт.
Опция -f
Эта опция позволяет выбрать элементы файла, разделенные табулятором.Пусть есть файл amino с вот таким содержанием:
asp glu met
ala gly trp
lys met ala
Применим к файлу команду "cut" с опцией -f:
cut -f 1,2 amino
получили 2 первые колонки:
asp glu
ala gly
lys met
Опция -s
Живет вместе с -f и говорит не выводить строки без символов-разделителей.Опция -d
Тоже живет с -f и нужна для тoго, чтобы понимать под разделителями не только знаки табуляции, но и другие штуки, например, двоеточие или пробел.Модифицируем немного файл amino:
Asp:Glu:Met
Ala:Gly:Trp
Lys:Met:Ala
Применим команду:
cut -f 1- -d : amino
получаем на выходе:
AspGluMet
AlaGlyTrp
LysMetAla
В целом команда cut напоминает команду restrict в JMol. Она однозначно очень пригодится нам в будущей работе с bash и в чтении файлов.