在awk中获取用户输入
有没有办法通过awk编程读取用户输入? 我尝试编写一个脚本来读取包含学生姓名和ID的文件。在awk中获取用户输入,awk,Awk,有没有办法通过awk编程读取用户输入? 我尝试编写一个脚本来读取包含学生姓名和ID的文件。 我必须通过键盘从用户那里获取学生的姓名,并使用awk返回所有学生的结果。您可以使用getline功能收集用户输入。确保在BEGIN块中设置此选项。以下是script.awk的内容: BEGIN { printf "Enter the student's name: " getline name < "-" } $2 == name { print } 运行方式如下: aw
我必须通过键盘从用户那里获取学生的姓名,并使用awk返回所有学生的结果。您可以使用
getline
功能收集用户输入。确保在BEGIN
块中设置此选项。以下是script.awk
的内容:
BEGIN {
printf "Enter the student's name: "
getline name < "-"
}
$2 == name {
print
}
运行方式如下:
awk -f ./script.awk file.txt
假设输入文件的格式为:
name<tab>id
或者使用GNU awk,您可以使用nextfile,这样您就不必在输入后输入control-D:
awk '
BEGIN { FS=OFS="\t"; printf "Enter name: " }
NR == FNR { name = $0; nextfile }
$1 == name
' - file
发布一些示例输入和预期输出,如果这不是您想要做的。我已经用line进行了测试
"awk 'BEGIN{printf "enter:";getline name<"/dev/tty"} {print $0} END{printf "[%s]", name}' < /etc/passwd"
“awk”BEGIN{printf”enter:“;getline name+1 nextfile…我总是可以通过阅读您的答案来学习东西。即使所有内容都在手册页中。您刚刚用实际示例进行了很好的解释。使它们易于记住。谢谢。
awk '
BEGIN { FS=OFS="\t"; printf "Enter name: " }
NR == FNR { name = $0; nextfile }
$1 == name
' - file
"awk 'BEGIN{printf "enter:";getline name<"/dev/tty"} {print $0} END{printf "[%s]", name}' < /etc/passwd"