我有来自Quake 3服务器的下一个日志信息
187:38 ClientUserinfo: 1 \ip\192.168.10.22:27960\challenge\-642334061\qport\26940\protocol\68\name\^3exc3ls!or_^87\rate\8000\sex\male\handicap\100\color2\5\color1\4\snaps\20\authc\0\cl_guid\K3F07049EDE8AAF58CC3A979846237D7
390:06 ClientUserinfo: 14 \ip\192.168.10.21:27960\challenge\314934026\qport\62577\protocol\68\name\Moody_dog55\rate\16000\sex\male\handicap\100\color2\5\color1\4\snaps\20\authc\0\cl_guid\7FB6BDD1F08CCCC8CK3E9444930A35CD
我想在文件
中提取IP和名称192.168.10.22 ^3exc3ls!or_^87
192.168.10.21 Moody_dog55
IP号码和名称可以是任何种类。
如何用sed,awk或grep完成?
答案 0 :(得分:0)
awk 方法:
awk -F'\' '{gsub(/:.*$/,"",$3); print $3, $11}' file
输出:
192.168.10.22 ^3exc3ls!or_^87
192.168.10.21 Moody_dog55
-F'\'
- 将\
视为字段分隔符
gsub(/:.*$/,"",$3);
- 从IP地址中删除端口号
perl 方法:
perl -nle 'print $1," ",$2 if /\\ip\\([^\\]+):.*?\\name\\([^\\]+)/' file
答案 1 :(得分:0)
您只需删除不需要的内容,例如sed
:
sed 's/.*ip\\//;s/:.*\\name\\/ /;s/\\.*//' file
192.168.10.22 ^3exc3ls!or_^87
192.168.10.21 Moody_dog55