Изучение руководств команд 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 и в чтении файлов.