Listar os patches disponíveis no openSUSE resulta na saída a seguir.
O comando que resulta nos detalhes abaixo é zypper patches
. O mesmo resultado também é exibido ao executar o comandozypper list-patches -a
Loading repository data...
Reading installed packages...
Repository | Name | Category | Severity | Interactive | Status | Summary
----------------------------------+--------------------+-------------+-----------+-------------+------------+---------------------------------------------------------------------------------------------------
openSUSE-Leap-15.0-Update | openSUSE-2018-1000 | recommended | moderate | --- | not needed | Recommended update for gnuhealth, proteus, tryton, trytond, trytond_purchase, trytond_stock_supply
openSUSE-Leap-15.0-Update | openSUSE-2018-1004 | security | low | --- | not needed | Security update for ffmpeg-4
openSUSE-Leap-15.0-Update | openSUSE-2018-1005 | security | moderate | --- | not needed | Security update for chromium
openSUSE-Leap-15.0-Update | openSUSE-2018-1006 | security | moderate | --- | applied | Security update for okular
openSUSE-Leap-15.0-Update | openSUSE-2018-1007 | recommended | moderate | --- | applied | Recommended update for tigervnc
Em uma tentativa de classificar "Status" usando o comando sort -k 6,6 listing.txt | less
, por exemplo, produz a seguinte saída.
----------------------------------+--------------------+-------------+-----------+-------------+------------+---------------------------------------------------------------------------------------------------
Loading repository data...
Reading installed packages...
openSUSE-Leap-15.0-Update-Non-Oss | openSUSE-2018-1082 | recommended | moderate | --- | not needed | Security update for opera
openSUSE-Leap-15.0-Update-Non-Oss | openSUSE-2018-1240 | recommended | moderate | --- | not needed | Recommended update for opera
openSUSE-Leap-15.0-Update-Non-Oss | openSUSE-2018-1294 | recommended | low | --- | not needed | Recommended update for Regina-REXX, THE, ooRexx
openSUSE-Leap-15.0-Update | openSUSE-2018-1000 | recommended | moderate | --- | not needed | Recommended update for gnuhealth, proteus, tryton, trytond, trytond_purchase, trytond_stock_supply
openSUSE-Leap-15.0-Update | openSUSE-2018-1007 | recommended | moderate | --- | applied | Recommended update for tigervnc
Repository | Name | Category | Severity | Interactive | Status | Summary
Ao verificar se o delimitador é uma combinação de espaços e tabulações usando as regras de realce de sintaxe no vim, ele retorna apenas espaços.
:syntax on
:set syntax=whitespace
Parece que o arquivo pode usar vários delimitadores.
- Qual é a maneira mais eficaz de determinar os delimitadores em uso?
- Qual seria a melhor e mais simples maneira de classificar as colunas com base nos delimitadores em uso?
Isso deve funcionar, a menos que você queira manter o cabeçalho no lugar:
Você pode omitir a
-b
opção desort
("ignorar espaços em branco iniciais) se o arquivo estiver usando espaço em branco regularmente (ou seja, não misturar| applied
e| applied
).Mas eu acho que a) esse programa provavelmente tem algumas opções para ajustar seu formato em algo mais legível por máquina b) você ficará melhor com apenas, por exemplo.
awk -F'|' '$6~/not needed/'
em vez desort
.Você poderia usar isso:
Ele é executado
awk
;listing.txt
em vez disso, você pode canalizar os dadosawk
(deixando de foralisting.txt
o final, é claro). Oawk
-script imprime as primeiras quatro linhas de cabeçalho como estão. O resto das linhas é canalizado parasort
.Sort
ordena a 6ª coluna, identificando-a com um delimitador igual ao símbolo de barra vertical.