gpt4 book ai didi

regex - 这个awk语句是什么意思?

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

我在awk中有如下语句

$ gawk '$2 == "-"  { print $1 }' file

我想知道这条指令到底做了什么,因为我无法准确解析我需要的词。

编辑:我该怎么做才能跳过以下星号之前的行?假设我有以下几行:

text
text
text


* * * * * * *

line1 -
line2 -

然后我只想过滤

line1
line2

加上我上面贴的那句话...

$ gawk '$2 == "-"  { print $1 }' file

感谢您的时间和回复!

最佳答案

这将找到第二列(以空格分隔)为 - 的所有行,然后打印第一列。

第一部分($2 == "-")检查第二列是否为 -,如果是,则运行附加的 {} block ,打印第一列($0 为整行, $1、$2 等是第一列、第二列、...列。)

空格是这里的分隔符,因为它们是 awk 中的默认分隔符。

编辑:要执行您想现在执行的操作,请尝试以下操作(不是最优雅的,但应该可行。)

gawk 'BEGIN { p = 0 } { if (p != 0 && $2 == "-") { print $1 } else { p = ($0 == "* * * * * * *")? 1 : 0 } }'

分散在更多行上以清楚发生的事情:

gawk 'BEGIN { p = 0 }
{ if (p != 0 && $2 == "-")
{ print $1 }
else
{ p = ($0 == "* * * * * * *")? 1 : 0 }
}'

关于regex - 这个awk语句是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18347661/

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