#bash #ubuntu
#bash #ubuntu
Вопрос:
У меня есть один текстовый файл, в котором хранятся критерии, которых нет в последовательности criteria.txt
key2|criteria2|desc2|4
key1|criteria1|desc1|3
key3|criteria3|desc3|4
Я хочу отобразить критерии, назначенные пользователю из criteria.txt в соответствии с его первым столбцом без отображения переменной первого столбца:
criteria1 desc1
criteria2 desc2
criteria3 desc3
Я попробовал две строки кода. Первый из них
awk -F'|' '{ printf "%s %-20s%sn", $1, $2, $3} criteria2.txt | sort
Это сортирует данные по ключу. Однако при этом будет выведена ключевая переменная. Итак, я попробовал вторую строку:
awk -F'|' '{ printf "%-20s%sn", $2, $3} criteria2.txt | sort
Здесь отображаются критерии и описание, но они отсортированы по описанию, а не по ключу. Как мне отобразить desc и третий столбец без отображения ключевой переменной?
Редактировать:
Я использую этот код, и он работает:
awk -F'|' '{ printf "%s %-20s%sn", $1, $2, $3} criteria2.txt | sort | cut -d' ' -f2-
Комментарии:
1. Просто добавьте это к первой версии вашего конвейера awk:
| cut -d' ' -f2-
. Или отсортируйте перед вызовом awk:sort criteria2.txt | awk -F'|' '{ printf "%-20s%sn", $2, $3}'
2. я использую первое решение, и оно работает! Спасибо!!