使用 linux 命令过滤结果文本

使用 linux 命令过滤结果文本

我想知道如何使用 Linux 命令过滤大文本的结果

示例文本:

dmade 摩洛哥地毯,Beni Ourain 地毯,白色和红色羊毛","sku":[],"is_vintage":false},{"title":"摩洛哥手工地毯,Beni Ourain 地毯,羊毛地毯,黑色和浅灰色地毯,格子地毯,柏柏尔地毯,Tapis berbere,Teppish Marokko","sku":[],"is_vintage":false},{"title":"精美的 Beni Ourain 地毯,摩洛哥白色和绿色地毯,羊毛地毯,格子地毯,手工地毯,羊毛地毯,斯堪的纳维亚地毯。","sku":[],"is_vintage":false},{"title":"华丽的摩洛哥地毯、正宗地毯、几何 2x8 地毯、手工地毯、白色和绿色复古摩洛哥地毯、柏柏尔地毯、手工编织羊毛地毯”,“sku”:[],“is_vintage”:true},},

我想提取从标题表达式的开头到标题“sku”结尾的所有标题匹配,但 sku 表达式不会被提取并按行组织每个标题。

答案1

在我看来,这看起来像一个 JSON,而从命令行处理 JSON 的最简单方法是使用jq命令。您可以jq在任何 Linux 发行版上安装。如果您的文件只是一个 JSON 数组,您可以像下面这样轻松地提取标题值,jq '.[].title' myfile.txt如果您不需要在标题周围加引号,只需将其传输到管道即可trjq '.[].title' myfile.txt | tr -d '"'

相关内容