天天看點

shell題一道

剛在linuxtone 見到一個案例,無奈無法回複,隻好貼在這裡,作為shell題目收集下來。

文本如下

lease 10.127.1.254 { 

  starts 1 2012/08/20 06:58:48; 

  ends 3 2012/09/19 06:58:48; 

  tstp 3 2012/09/19 06:58:48; 

  binding state active; 

  next binding state free; 

  hardware ethernet 11:22:33:44:55:84; 

  uid "\001x+\313C\270\204"; 

  client-hostname "rac-ABCDEF"; 

lease 10.127.1.253 { 

  client-hostname "rac-AAAAA"; 

要求将IP和主機名過濾出來,格式【IP 主機名】

已經有大牛提供了辦法,但是我還是說下自己的解決思路:

1、利用grep将IP和主機名過濾出來

2、合并行

3、列印

全過程

$ grep 'lease\|hostname' file.txt 

$ grep 'lease\|hostname' file.txt |awk '{print $2}' 

10.127.1.254 

"rac-ABCDEF"; 

10.127.1.253 

"rac-AAAAA"; 

$ grep 'lease\|hostname' txt |awk '{print $2}' |awk '{if (NR%2==0){print $0} else {printf"%s ",$0}}' 

10.127.1.254 "rac-ABCDEF"; 

10.127.1.253 "rac-AAAAA"; 

用的工具不同,步驟可以省略一兩步

$ awk '/lease/||/client-hostname/{print $2}' new 

本文轉自 紫色葡萄 51CTO部落格,原文連結:http://blog.51cto.com/purplegrape/970871,如需轉載請自行聯系原作者