Tenho um arquivo com o seguinte conteúdo:
foo-6-25.example.com:
1 Var. Speed System Board Normal Yes Normal ( 49)
--
foo-5-4.example.com:
1 Var. Speed System Board Normal Yes Normal ( 19)
--
foo-8-28.example.com:
1 Var. Speed System Board Normal Yes Normal ( 43)
--
foo-9-7.example.com:
1 Var. Speed System Board Normal Yes Normal ( 91)
--
foo-5-19.idmz.example.com:
1 Var. Speed System Board Normal Yes Normal ( 19)
--
foo-7-3.example.com:
1 Var. Speed System Board Normal Yes Normal ( 20)
Eu quero formatá-lo da seguinte maneira: nome do servidor e, em seguida, a velocidade do FAN que está entre ()
colchetes
foo-6-25.example.com: ( 49)
foo-5-4.example.com: ( 19)
Não tenho certeza de como usar isso usando o awk ou qualquer outra ferramenta.
awk
soluçãoawk
+column
soluçãoAlinha as colunas dinamicamente.
Se você não quiser nenhum espaçamento/alinhamento da 2ª coluna, você pode omitir o
column
comando:Se você está lidando com o GNU
sed
, pode reduzi-lo ainda mais:saídas:
explicação:
:
, ele anexa a próxima linha ao registro atual.(
e a substitui por(
e imprime o registro.perl
foi invocado com-n
, os registros não afetados não são impressos.Sed
tem uma maneira muito compacta de escrever o mesmo:Usando awk no modo de parágrafo
Se não houver espaços ou tabulações iniciais em cada linha, apenas
O (primeiro)
sed
script anotado (assume-E
e-n
):