awk - 在 awk 中获取用户输入

标签 awk

有没有办法通过awk编程来读取用户输入?
我尝试编写一个脚本来读取包含学生姓名和 ID 的文件。
我必须通过键盘从用户那里获取学生的姓名,并使用 awk 返回所有学生的结果。

最佳答案

您可以使用 getline 收集用户输入功能。确保在 BEGIN 中设置它堵塞。这是script.awk的内容:

BEGIN {
    printf "Enter the student's name: "
    getline name < "-"
}

$2 == name {
    print
}

这是一个包含 ID、名称和结果的示例文件:
1 jonathan good
2 jane bad
3 steve evil
4 mike nice

像这样运行:
awk -f ./script.awk file.txt

关于awk - 在 awk 中获取用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12907238/

相关文章:

linux - 用于组合行并汇总它们的 awk 命令

使用awk的时差

linux - 如何根据 K 列的长度对 Tab 格式文件进行排序

linux - 从第一列中提取子字符串

csv - 重击 : Add empty column(s) to CSV with unknown positions

linux - 通过组合其他三列中的字符串来创建新列

Shell编程如何统计一个单词在一行中出现的次数?

awk - 提取最后一列最小值对应的行

linux - 使用 foreach 和 awk 命令将 csh 脚本转换为 bash 脚本

linux - awk,不清楚 gnu-awk 网站示例中的片段