Usando sed
:
sed -e 'N;s/\n/\t/' in.txt
juntando cada uma das duas linhas com uma única tabulação entre
como imprimir o seguinte (saída da API) para que o endereço IP seja depois do nome do host
kafka02.ur.com
102.16.235.69
master01.ur.com
102.16.235.61
master02.ur.com
102.16.235.62
exemplo
kafka02.ur.com 102.16.235.69
master01.ur.com 102.16.235.61
master02.ur.com 102.16.235.62
$ paste - - <file
kafka02.ur.com 102.16.235.69
master01.ur.com 102.16.235.61
master02.ur.com 102.16.235.62
O comando paste
, quando usado com - -
, lerá a entrada padrão e distribuirá as linhas de entrada (de file
) pelas duas colunas de saída.
O delimitador será um caractere de tabulação, mas isso pode ser alterado com a opção -d
.
com awk
(conforme solicitado):
$ awk '{ printf("%s\t", $0) } { getline } { print }' file
com awk
:
awk '{getline x; printf("%s\t%s\n", $0, x)}' file.txt
getline x
obtém o próximo registro e salva como variável x
printf("%s %s\n", $0, x)
imprime os registros no formato desejado
Exemplo:
% cat file.txt
kafka02.ur.com
102.16.235.69
master01.ur.com
102.16.235.61
master02.ur.com
102.16.235.62
% awk '{getline x; printf("%s\t%s\n", $0, x)}' file.txt
kafka02.ur.com 102.16.235.69
master01.ur.com 102.16.235.61
master02.ur.com 102.16.235.62
Tags bash perl awk sed shell-script