在尾部输出中,我有以下字符串...使用 grep 命令如何搜索字符串"contentState":"STOPPED"
.我必须搜索整个字符串"contentState":"STOPPED"
而不是 而不是仅搜索 STO P
PED 或contentState
。
我尝试了以下命令:但它不起作用。
grep -e ""contentState":"STOPPED" /opt/logs/out.log | tail -1
{"eventType":"appAction","action":"CONTENT_STATE_CHANGE","evt":{"contentState":"STOPPED"}}}
要搜索"contentState":"STOPPED"
,您需要(a)将整个字符串放在单引号中以保护它,以及(b)转义(双)反斜杠。 因此:
grep -e '"contentState\":\"STOPPED\"' /opt/logs/out.log
如果没有提供外部单引号的保护,未转义的双引号将被外壳删除引号,grep
永远不会看到它们。
例
请考虑以下测试文件:
$ cat log
good "contentState":"STOPPED"
bad contentState":"STOPPED"
bad "contentState":"STOPPED"
让我们运行我们的命令:
$ grep -e '"contentState\":\"STOPPED\"' log
good "contentState":"STOPPED"
如我们所见,返回好线,只返回好线。