所以,在下面的字符串中:
"body":"MESSAGE"
我试图只提取消息这个词。我一直在玩 grep 试图弄清楚,但现在只能打印第一个字母 M。
grep -oP "body":"K[^"]+,]
我尝试使用上面的语句,但似乎无法在没有引号分隔的情况下获得整个单词 MESSAGE。这个字符串 MESSAGE 会发生变化,所以 grep 语句只需要能够获取"body":" 和 " 之间的文本。
任何帮助将不胜感激!
看起来你得到了 JSON,在这种情况下你应该考虑使用 jq
:
jq -r '.body' file.json
例:
% cat file.json
{
"body": "MESSAGE"
}
% jq -r '.body' file.json
MESSAGE
这应该有效:
grep -oP '"body":"K[^"]+' <<< '"body":"SOME MESSAGE"'
SOME MESSAGE
您应该改用 cut 命令。如果你的字符串在文件中,你可以试试这个:
cat file.txt | cut d'"' -f4