我想在这种情况下打印第一列主机IP和%
字符后的所有内容。
10.162.254.12 3558:003557:2013年3月4日12:13:28:%LINEPROTO-SP-5-UPDOWN:接口上的线路协议 GigabitEthernet8 / 37,将状态更改为up 192.50.0.14:2013年3月4日13:14:20 EST:%ETHPORT-5-IF_DOWN_LINK_FAILURE:接口Ethernet17 / 33关闭(Link 失败)
答案 0 :(得分: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)
答案 1 :(得分:0)
sed 's/\([^ ]*\)[^%]*%/\1 /' input