gpt4 book ai didi

linux - 比赛结束后如何打印所有内容?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:51 27 4
gpt4 key购买 nike

如何在比赛结束后打印所有内容?

我尝试了以下方法,它简单地打印了变量“$source”:

awk "IGNORECASE = 1;f;/some_word<\/div>/{f=1}" <<< "$source"

例如,源包含:

<code>
<code>
MATCH
<code>
<code>
<code>

我想得到:

<code>
<code>
<code>

最佳答案

你很接近。请记住 awk 脚本具有以下语法:

<condition> { <action> }

默认条件为真,默认操作为打印当前记录。当你写道:

IGNORECASE = 1;f;/some_word<\/div>/{f=1}

这等同于:

IGNORECASE = 1
f
/some_word<\/div>/ { f=1 }

当您添加默认操作时,它与:

IGNORECASE = 1 { print $0 }
f { print $0 }
/some_word<\/div>/ { f=1 }

请注意,您已将 IGNORECASE=1 语句放在条件部分而不是操作部分,因此它的计算结果始终为真,因此始终打印当前行。

您真正想要的是在脚本开头设置 IGNORECASE:

BEGIN { IGNORECASE = 1 }
f { print $0 }
/some_word<\/div>/ { f=1 }

在您原来的单行语法中可以简化为:

BEGIN{IGNORECASE = 1} f; /some_word<\/div>/ {f=1}

整个脚本是(使用单引号,而不是双引号以避免 shell 引用/转义):

awk 'BEGIN{IGNORECASE = 1} f; /some_word<\/div>/ {f=1}' <<< "$source"

但请注意,IGNORECASE 是特定于 GNU-awk 的,可移植到您要执行的所有 awk 中:

awk 'f; tolower($0) ~ /some_word<\/div>/ {f=1}' <<< "$source"

关于linux - 比赛结束后如何打印所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21715245/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com