使用sed / awk在每次出现模式时将长行分成多行

时间:2017-11-02 05:40:24

标签: awk sed

我有一个单行文件(实际上是一条很长的行),如下所示:

{worda:wordB:[{" wordc""有源":真},} {:wordb:"也就是说"" wordt& #34;" wordu"" wordv","活跃":true}等等。

在这一行中,一个常见的模式是'"活跃":true'。我试图根据这种模式将这一行分成多行。

所需输出: {worda:wordB:[{&#34; wordc&#34;&#34;有源&#34;:真} {:wordb:&#34;也就是说&#34;&#34; wordt&#34;&#34; wordu&#34;&#34; WORDV&#34;&#34;有源&#34;:真} < / p>

我尝试使用sed和awk,或者在处理后产生0 Kb文件,或者输入文件与文件相同。

我有Windows环境并使用GNU sed / awk。

请帮忙。

2 个答案:

答案 0 :(得分:0)

请根据论坛规则为您的帖子使用代码标记,请尝试关注,如果这有助于您,请告知我们。

threshold

输出如下。

awk '{sub("true},}","true}");sub(/\"active\":true}/,"&\n")} 1'  Input_file

此处也添加说明。

{worda:wordB:[{"wordc","active":true}
{:wordb:"words","wordt""wordu""wordv","active":true}

答案 1 :(得分:0)

vec4 textureColor = texture2D(uTextureSampler, vTextureCoord);
if(textureColor.r* 0.299 + textureColor.g * 0.587 + textureColor.b * 0.114 < 0.1) {
    gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
} else {
    gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, textureColor.w);
}

简要说明, 使用$ sed 's/true}.*{/true}\n{/' file {worda:wordB:[{"wordc","active":true} {:wordb:"words","wordt""wordu""wordv","active":true} sed替换为true}.*{,其中true}\n{将被视为任何字符,.*将是换行符