awk + ​​如何打印第一个主机名后的每个秒字符串(IP)

awk + ​​如何打印第一个主机名后的每个秒字符串(IP)

如何打印以下内容(从 API 输出),以便 IP 地址位于主机名之后

kafka02.ur.com
102.16.235.69
master01.ur.com
102.16.235.61
master02.ur.com
102.16.235.62

例子

kafka02.ur.com     102.16.235.69
master01.ur.com    102.16.235.61
master02.ur.com    102.16.235.62

答案1

使用sed

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

将每两行用单个制表符连接在一起

答案2

$ paste - - <file
kafka02.ur.com  102.16.235.69
master01.ur.com 102.16.235.61
master02.ur.com 102.16.235.62

paste命令与 一起使用时- -将从标准输入读取并将传入行(来自file)分布在两列输出中。

分隔符将是制表符,但这可以通过选项更改-d

awk(根据要求):

$ awk '{ printf("%s\t", $0) } { getline } { print }' file

答案3

awk

awk '{getline x; printf("%s\t%s\n", $0, x)}' file.txt
  • getline x获取下一条记录并保存为变量x

  • printf("%s %s\n", $0, x)以所需格式打印记录


例子:

% 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

相关内容