awk + como imprimir cada seqüência de segundos (IP) após o primeiro nome de host

0

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
    
por yael 28.08.2017 / 07:51

3 respostas

2

Usando sed :

sed -e 'N;s/\n/\t/' in.txt

juntando cada uma das duas linhas com uma única tabulação entre

    
por 28.08.2017 / 08:05
1
$ 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
    
por 28.08.2017 / 07:59
0

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
    
por 28.08.2017 / 07:56