AWK:用户输入文本文件
有没有办法用纯AWK语言请求用户输入 我想创建一个程序,在运行时使用:“awk-f my.awk”执行以下操作:AWK:用户输入文本文件,awk,user-input,Awk,User Input,有没有办法用纯AWK语言请求用户输入 我想创建一个程序,在运行时使用:“awk-f my.awk”执行以下操作: 打印“输入文件名:” 获取输入,打开文件,并为每行打印行号和行内容 我可以使用“awk-f my.awk text.txt”实现这一点,而无需用户输入。 如果my.awk包含: {print NR, $n} 或者直接在终端中运行,使用: awk '{print NR, $n}' text.txt 我知道这是一个非常愚蠢的问题,但我找不到任何关于这方面的信息。 提前谢谢 有没有办法
{print NR, $n}
或者直接在终端中运行,使用:
awk '{print NR, $n}' text.txt
我知道这是一个非常愚蠢的问题,但我找不到任何关于这方面的信息。
提前谢谢
有没有办法用纯AWK语言请求用户输入
简言之,这不能用纯awk
实现
我可能会编写一个简短的包装器脚本,如:
#!/bin/bash
echo "Enter filename:"
read filename
awk -f my.awk "$filename"
或者选择另一种脚本语言,如python
或perl
有没有办法用纯AWK语言请求用户输入
简言之,这不能用纯awk
实现
我可能会编写一个简短的包装器脚本,如:
#!/bin/bash
echo "Enter filename:"
read filename
awk -f my.awk "$filename"
或者选择另一种脚本语言,如
python
或perl
是的,您可以。用呆呆的眼神测试:
awk '
BEGIN {
printf "enter filename: "
getline < "-"
ARGV[1] = $0
ARGC = 2
}
{print NR, $0}
'
awk'
开始{
printf“输入文件名:”
getline<“-”
ARGV[1]=0美元
ARGC=2
}
{打印编号,$0}
'
参考:是的,你可以。用呆呆的眼神测试:
awk '
BEGIN {
printf "enter filename: "
getline < "-"
ARGV[1] = $0
ARGC = 2
}
{print NR, $0}
'
awk'
开始{
printf“输入文件名:”
getline<“-”
ARGV[1]=0美元
ARGC=2
}
{打印编号,$0}
'
ref:要给
awk
一个bash变量,请使用awk-v awk\u var=$bash\u var'BEGIN{print awk\u var}'
。我不知道如何设置文件名。要打印带有行号的文件:cat-n file
要给awk
一个bash变量,请使用awk-v awk\u var=$bash\u var'BEGIN{print awk\u var}'
。我不知道如何设置文件名。要打印带有行号的文件:cat-n file