Вы можете получить номер версии любого установленного пакета, передав pacman флаг -Q
(запрос).
pacman -Q $package
Pacman считает пакеты, отсутствующие в базе данных синхронизации, чужими: чтобы распечатать список всех этих пакетов, вы можете передать pacman параметр -m
:
pacman -Qm
От man pacman
страница:
-m, --foreign
Ограничить или отфильтровать вывод пакетов, которые не были найдены в базе данных синхронизации. Обычно это пакеты, которые были загружены вручную и установлены с помощью --upgrade.
Поскольку pacman ничего не знает об AUR (кроме того факта, что эти пакеты, как и любые установленные вручную, существуют вне репозиториев), вам нужно будет использовать помощник AUR для получения текущей версии пакета пакет в AUR.
Cower обычно считается одним из лучших помощников (см. сравнительную таблицу на вики-странице и избегайте помощников с красными полями):
cower -s $package
Добавьте BEGIN { OFS="\t" }
в начало сценария awk и измените {print }
на {print $1, $2, $3, $4}
. Это изменит разделитель полей вывода awk на tab с пробела по умолчанию.
Для n столбцов можно использовать {$1 = $1; print}
вместо {print}
. Я не уверен, как это работает внутри, но при тестировании это работает.
One more awk can do the thing
awk -f tst.awk file | column -t | awk -v OFS='\t' '{ print $1,$2,$3,$4 }'