我有一个LOG:
100.100.100.100 - - [08/Mar/2016:07:53:33 +0100] GET /rbt/Utils.do?receiverID=665135085&action=send_sms&senderID=22077&dtocRequest=n&smsText=Tu+PIN+es+95934&isPostMethod=n&subscriberID=665135085&useSameResForConsent=n&mode=WEB
我只需要显示两个字段。日期和订户ID字段(仅限数字)。
我正在尝试以下命令:
cut -d" " -f4,7 input.txt | awk -F"subscriberID=" '{print $2}' input.txt | cut -c0-9
我的输出:
665135085
必需的输出:
08/Mar/2016:07:53:33 +0100 665135085
请帮助。
答案 0 :(得分:1)
这是sed
的作业:
sed -E 's/.*\[([^]]*)\].*subscriberID=([0-9]*).*/\1 \2/' input.txt
如果你有一个奇怪的sed
不支持"扩展"正则表达式(由-E
标志启用),您必须在每次打开和关闭之前添加\
paren:
sed 's/.*\[\([^]]*\)\].*subscriberID=\([0-9]*\).*/\1 \2/' input.txt