awk
:
awk 'a=""; {for(i=1; i<=NF; ++i) {if($i ~ /[MX=]$/) a=(a?a"\t":"")$i}; \
if(a) print a}' file.txt
a=""
устанавливает переменную a
в нулевое значение для текущей записи, т. е. делает a
специфичной для записи
for(i=1; i<=NF; ++i) {if($i ~ /[MX=]$/) a=(a?a"\t":"")$i}
перебирает поля, проверяет, заканчивается ли поле на M
, X
или =
, если да, добавляет поле к переменной a
с вкладкой для разделения между ранее сохраненным полем
if(a) print a
печатает a
, если оно не равно нулю
Игра в гольф:
awk 'a="";{for(i=1;i<=NF;++i)if($i~/[MX=]$/)a=(a?a"\t":"")$i;if(a)print a}'
Пример:
% cat file.txt
357M 2054_
357_ 154= 1900_
511_ 419X 1481_ 34=
% awk 'a=""; {for(i=1; i<=NF; ++i) {if($i ~ /[MX=]$/) a=(a?a"\t":"")$i}; if(a) print a}' file.txt
357M
154=
419X 34=
Or if you could guide me on how to install Ubuntu on VirtualBox without a GUI.
Просто установите версию Ubuntu Server в VirtualBox и включите sshd
по умолчанию. Затем можно просто подключиться через ssh в терминале.
Можно также рассмотреть возможность использования Vagrant для автоматизации настройки виртуальной машины.
Для минимальной настройки CLI на основе Debian -я бы рассмотрел либо минимальную сетевую установку (netinst )образ Debian, либо сервер Ubuntu, который представляет собой версию дистрибутива с командной -строкой с некоторыми включены общие серверные пакеты.
Образ netinst Debian устанавливает минимальную систему и позволяет вам самостоятельно устанавливать больше пакетов по сети. Образ Ubuntu Server будет включать больше пакетов, включенных в установку по умолчанию, поэтому он менее минимален, но, вероятно, его установка займет меньше времени в зависимости от того, что вы делаете. В обоих случаях вам просто нужно включить sshd и любые другие службы или пакеты, необходимые для вашего программного обеспечения.