我制作了一个交互式菜单脚本只是为了用 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 。