Мне нужна помощь sed / grep с моим /etc/passwd
файлом. Пример вывода в моем файле / etc / passwd:
username1:x:5687:3794:Smith, Mike:/home/username1:/bin/bash
Мой первый столбец - имена пользователей, а пятый столбец - Фамилия, Имя, и он никак не в алфавитном порядке. Мне нужно отобразить первый столбец, а затем отобразить пятый столбец в поле Имя Фамилия, отсортированные в алфавитном порядке по фамилии.
У меня есть команда sed для отображения пятого столбца в Имя Фамилия, отсортированная в алфавитном порядке по фамилии:
grep "$userid" /etc/passwd | cut -d: -f5 | sort | sed 's/^\(.*\), \(.*\)$/\2 \1/'
, но простое добавление f1,5
в мою команду вырезать не дает Чтобы получить ожидаемый результат, он удаляет алфавитный порядок и просто помещает первый столбец после их имени, а это не то, что я ищу.
Я могу использовать только команду sed. Что мне нужно, и мне нужна помощь:
grep "$userid" /etc/passwd | cut -d: -f1,5 | sort | sed
Я застрял здесь, так как мало знаю о команде sed, userid - это просто переменная, которую я читаю из пользовательского ввода внутри скрипта для первый столбец.
Таким образом, выходной пример будет:
username7 Abe Adams
username2 Jack Adams
username4 Ben Fab
username5 Jon Heat