我有一个包含大量字符串的文件,如下面的输入。 需要提取以下输出并进一步处理。
输入:
History={ExecAt=[2013-05-03 03:00:20,2013-05-03 03:00:23,2013-05-03 03:00:26],MId=["msgId3","msgId4","msgId5"]};
输出应为:
MId=["msgId3","msgId4","msgId5"]
使用(sed的/^.*,MId = / MId /')命令得到输出,如MId = [“msgId3”,“msgId4”,“msgId5”]}; 但仍然需要确切的输出(需要删除最后2个特殊字符};这里)。
答案 0 :(得分:1)
如果您的grep
支持-o
选项,则可以使用它而不是sed
:
grep -o 'MId=\[[^]]\+\]'
在sed
中使用相同的正则表达式可以正常工作,只需删除之前和之后的任何内容:
sed -e 's/.*\(MId=\[[^]]\+\]\).*/\1/'
答案 1 :(得分:1)
这对我有用:
sed 's/.*\(MId=.*\)\}.*/\1/'