Использование хэша массивов в Perl (со склейками для удаления и повторной вставки поля агрегата после каждого слияния):
$ perl -F\; -alne '
if($.==1) {
print;
next;
}
if(!exists $HoA{$F[4]}) {
$HoA{$F[4]} = [ @F ];
}
else {
splice @{ $HoA{$F[4]} }, 2, 0, join ",", (splice @{ $HoA{$F[4]} }, 2, 1), $F[2];
}
END {
for $k (keys %HoA) {
print join ";", @{ $HoA{$k} };
}
}
' data
Domain Name;ID;Machine;Environment;ENV URL;Start Date;End Date;Disk Size;Used
matrix.localhost.com;XY6124;Machine-apache-bcp1,Machine-apache-prd1;test;test.matrix.localhost.com;2 April 2013 08:12:10 GMT+01:00;2 April 2018 08:42:10 GMT+01:00;1024;External
orion.uk.localhost.com;XY01123;Machine-apache-ua01,Machine-apache-ua02;uat;uat.orion.uk.localhost.com;5 August 2015 16:54:08 GMT+01:00;2 August 2025 16:54:08 GMT+01:00;2048;Internal
matrix.localhost.com;XY6124;Machine-apache-dev1,Machine-apache-dev2;dev;dev.matrix.localhost.com;16 April 2013 06:32:28 GMT+01:00;16 April 2018 07:02:28 GMT+01:00;1024;External
matrix.localhost.com;XY6124;Machine-apache-uat1,Machine-apache-uat2;uat;uat.matrix.localhost.com;16 April 2013 07:06:33 GMT+01:00;16 April 2018 07:36:33 GMT+01:00;1024;External
Upgrade.uk.localhost.com;IN022345;Machine-apache-pf01,Machine-apache-pf02;per;per.Upgrade.uk.localhost.com;5 August 2015 16:54:08 GMT+01:00;2 August 2025 16:54:08 GMT+01:00;2048;Internal
В качестве альтернативы, используя GNU datamash
(с вырезом
, чтобы удалить лишнее поле groupby
):
$ datamash -Hst\; groupby 5 unique 1-2 collapse 3 unique 4-9 < data | cut -d\; -f2-
unique(Domain Name);unique(ID);collapse(Machine);unique(Environment);unique(ENV URL);unique(Start Date);unique(End Date);unique(Disk Size);unique(Used)
matrix.localhost.com;XY6124;Machine-apache-dev1,Machine-apache-dev2;dev;dev.matrix.localhost.com;16 April 2013 06:32:28 GMT+01:00;16 April 2018 07:02:28 GMT+01:00;1024;External
Upgrade.uk.localhost.com;IN022345;Machine-apache-pf01,Machine-apache-pf02;per;per.Upgrade.uk.localhost.com;5 August 2015 16:54:08 GMT+01:00;2 August 2025 16:54:08 GMT+01:00;2048;Internal
matrix.localhost.com;XY6124;Machine-apache-bcp1,Machine-apache-prd1;test;test.matrix.localhost.com;2 April 2013 08:12:10 GMT+01:00;2 April 2018 08:42:10 GMT+01:00;1024;External
matrix.localhost.com;XY6124;Machine-apache-uat1,Machine-apache-uat2;uat;uat.matrix.localhost.com;16 April 2013 07:06:33 GMT+01:00,22 March 2013 06:16:10 GMT;16 April 2018 07:36:33 GMT+01:00,22 March 2018 06:46:10 GMT;1024;External
orion.uk.localhost.com;XY01123;Machine-apache-ua01,Machine-apache-ua02;uat;uat.orion.uk.localhost.com;5 August 2015 16:54:08 GMT+01:00;2 August 2025 16:54:08 GMT+01:00;2048;Internal
pacman -S extra / gnome
устанавливает множество вещей, включая Xord и GDM. extra / gnome
- это группа пакетов, которые вы можете выбрать или отменить выбор в pacman
. Но для типичной установки гнома вам, скорее всего, понадобятся все они.
Оттуда вы можете просто включить GDM для запуска при загрузке с помощью:
systemctl enable gdm.service
Вы можете либо перезагрузиться, либо использовать:
systemctl start gdm.service
Чтобы запустить диспетчер дисплея прямо здесь.
Чтобы запустить gnome из командной строки, вы хотите, чтобы служба GDM была отключена.
systemctl disable gdm.service
И вам понадобятся два файла в вашем домашнем каталоге .xsession
и .xinitrc
. Чтобы упростить задачу, разумно использовать .xsession
, который вызывает .xinitrc
. Например,
.xsession
#!/bin/sh
if test -r "$HOME/.xinitrc"
then
source "$HOME/.xinitrc"
fi
И затем вы можете поместить все, что вам нужно, в .xinitrc
.xinitrc
# Sometimes D-BUS stuff is placed here by packages, pick it up
if test -d /etc/X11/xinit/xinitrc.d
then
for f in /etc/X11/xinit/xinitrc.d/*
do
[ -x "$f" ] && source "$f"
done
unset f
fi
# random config
setxkbmap us
xrdb .Xresources
export PATH=$PATH:$HOME/bin
# get into gnome
exec gnome-session
. Это важно, оба файла должны быть исполняемыми.
chmod 755 .xsession .xinitrc
И вы можете выполнить startx
с tty, чтобы запустить Xorg, а затем Gnome.
Arch имеет несколько драйверов, доступных из основных репозиториев.
extra / nvidia
содержит самые последние (последние в официальных репозиториях, в AUR их немного никогда).
extra / nvidia-304xx
/ extra / nvidia-304xx
- для старых карт.
Я не следую соглашениям NVIDIA об именах, вам нужно будет просмотреть arch wiki и соглашения nouveau , чтобы найти, какое из них может работать.
Но на самом деле некоторые строки:
lspci -k | grep VGA
также дадут вам лучшее представление о названии вашей карты.
Примечания:
Xorg - это сервер дисплея, он занимается созданием дисплея (или нескольких дисплеев).
GDM - это диспетчер дисплеев, он занимается аутентификацией и обменом данными между сервером дисплея и диспетчером окон.
Gnome - это оконный менеджер (на самом деле это тоже другие вещи, но для наших целей он заполняет стек приложения оконного менеджера), он предоставляет пользователю инструменты для взаимодействия с дисплеем и приложениями с API для окон (через GTK ).
Ссылки: