2013-03-04 92 views
1

我想在本例中打印第一列的主機IP以及%之後的所有字符。打印第一列並打印%符號後的所有內容

10.162.254.12 3558:003557:2013年3月4日12時十三分28秒:%LINEPROTO-SP-5-UPDOWN:上接口 GigabitEthernet8 /第37行協議,改變了狀態最多
192.50.0.14: 2013 03月04日13時14分二十零秒EST:%ETHPORT -5- IF_DOWN_LINK_FAILURE:接口Ethernet17/33下跌(鏈接 失敗)

回答

2

你有兩個%字符,如果一切後的第一或沒有指定最後應該打印?這裏有兩種方式使用sed

# First field and everything after first % 
$ sed 's/ [^%]*%/ /' file 
10.162.254.12 LINEPROTO-SP-5-UPDOWN: Line protocol on Interface GigabitEthernet8/37, changed state to up 192.50.0.14 : 2013 Mar 4 13:14:20 EST: %ETHPORT-5-IF_DOWN_LINK_FAILURE: Interface Ethernet17/33 is down (Link failure) 

# First field and everything after last % 
$ sed 's/ .*%/ /' file 
10.162.254.12 ETHPORT-5-IF_DOWN_LINK_FAILURE: Interface Ethernet17/33 is down (Link failure) 
0
sed 's/\([^ ]*\)[^%]*%/\1 /' input