AWK getline问题

AWK getline问题

我制作了一个交互式菜单脚本只是为了用 awk 来好玩。我能够接收用户输入并使用 if 语句来说明如果响应就是这样getline<file(我之前定义了变量)。我用过这个:

while ((getline<file) > 0) {print};

但是,我想通过进一步添加简单、中等、困难、疯狂的选项来添加更多粒度,如果用户从文件中键入一个简单的然后 getline ,并且它只打印文件中的匹配项,我希望添加更多的粒度。

示例:如果我想匹配,我会在正常的一行中输入

awk -F " " '/inet / {print $6}'

所以它只会打印出匹配的项目inet

我如何awk通过getline循环在脚本中应用这一原则?

谢谢您的帮助。

基本上,不要使用以下命令打印整个文件:

while ((getline<file) > 0) {print};

我想要这样的东西:

while ((getline<file) > 0) /Easy: / {print};

单行示例(首选与此类似的输出):

awk -F " " '/Easy: / {print $2}'

要不就

awk '/Easy: / {print $0}'

答案1

while ( (getline < file) > 0 ) {
    if (/Easy: /) {
        print $2
    }
}

确保阅读并理解所有内容http://awk.freeshell.org/AllAboutGetline如果您正在考虑使用 getline 。

相关内容