Чтобы извлечь первое поле, разделенное табуляцией -, из файла с помощью awk
, обязательно установите разделитель полей на символ табуляции. Как показано ниже, вы делаете это, передавая параметру -аргумент \t
для параметра -F
.
awk -F '\t' '{ print $1 }' file
Также было бы относительно легко использовать cut
здесь, так как символ табуляции является его разделителем по умолчанию, и вам не нужно выполнять какую-либо другую причудливую обработку:
cut -f 1 file
Пропустите это через sort | uniq
, чтобы получить уникальные строки, или через sort -u
, если хотите меньше печатать.
Вы сталкиваетесь с проблемой, что awk
по умолчанию используются любые пробелы(наборы табуляции или пробелов )в качестве разделителя, а ваше первое поле содержит пробелы, из-за чего утилита неправильно интерпретирует первое слово в качестве первого поля.