有没有办法用纯AWK语言请求用户输入?
我想创建一个程序,在运行时,使用:“awk -f my.awk”执行以下操作:
打印“输入文件名:”
获取输入,打开文件,每行打印亚麻和线条内容。
我可以使用“awk -f my.awk text.txt”在没有用户输入的情况下实现此目的。 如果my.awk包含:
{print NR, $n}
或直接使用以下方式在终端中运行:
awk '{print NR, $n}' text.txt
我知道这是一个非常愚蠢的问题,但我找不到任何关于此的信息。 提前谢谢。
答案 0 :(得分:2)
有没有办法用纯AWK语言请求用户输入?
简而言之,使用纯awk
无法做到这一点。
我可能会写一个简短的包装脚本,如:
#!/bin/bash
echo "Enter filename:"
read filename
awk -f my.awk "$filename"
或者选择其他脚本语言,例如python
或perl
。
答案 1 :(得分:2)
是的,你可以。用gawk测试:
awk '
BEGIN {
printf "enter filename: "
getline < "-"
ARGV[1] = $0
ARGC = 2
}
{print NR, $0}
'
参考:http://www.gnu.org/software/gawk/manual/html_node/ARGC-and-ARGV.html