2016-06-07 64 views
1

那么,在下面的字符串:grep的某些字符

"body":"MESSAGE" 

我想只是提取码字信息。我一直在玩grep,试图找出它,但现在只能得到第一个字母M打印。

grep -oP "body":"\K[^"]+,] 

我试过使用上述语句,但似乎无法得到整个单词MESSAGE没有引号分隔。这个字符串MESSAGE改变了,所以grep语句只需要能够在“body”:“and”之间获取文本。

任何帮助将不胜感激!

回答

1

这应该工作:

grep -oP '"body":"\K[^"]+' <<< '"body":"SOME MESSAGE"' 

SOME MESSAGE 
2

它看起来就像你JSON,在这种情况下,你应该考虑使用jq

jq -r '.body' file.json 

例子:

% cat file.json 
{ 
    "body": "MESSAGE" 
} 
% jq -r '.body' file.json 
MESSAGE 
0

您应该使用改为切换命令。 如果你的字符串在一个文件中,你可以试试这个:

cat file.txt | cut d'"' -f4