gpt4 book ai didi

awk - 使用 awk 进行表查找

转载 作者:行者123 更新时间:2023-12-04 20:11:58 25 4
gpt4 key购买 nike

我想使用 awk 从文本文件中查找值。文本文件的格式非常简单:

文本\t 值
文本\t 值
文本\t 值
...

我想传递应该通过 shell 变量查找值的实际文本,例如 $1。

有什么想法可以用 awk 做到这一点吗?

非常感谢您的帮助。

祝一切顺利,
阿尔贝托

最佳答案

您可以在没有 shell 包装器的纯 AWK 脚本中执行此操作:

#!/usr/bin/awk -f
BEGIN { key = ARGV[1]; ARGV[1]="" }
$1 == key { print $2 }

像这样调用它:
./lookup.awk keyval lookupfile

例子:
$ cat lookupfile
aaa 111
bbb 222
ccc 333
ddd 444
zzz 999
mmm 888
$ ./lookup.awk ddd lookupfile
444
$ ./lookup.awk zzz lookupfile
999

这甚至可以扩展为使用参数选择所需的字段。
#!/usr/bin/awk -f
BEGIN { key = ARGV[1]; field = ARGV[2]; ARGV[1]=ARGV[2]="" }
$1 == key { print $field }

例子:
$ cat lookupfile2
aaa 111 abc
bbb 222 def
ccc 333 ghi
ddd 444 jkl
zzz 999 mno
mmm 888 pqr
$ ./lookupf.awk mmm 1 lookupfile2
mmm
$ ./lookupf.awk mmm 2 lookupfile2
888
$ ./lookupf.awk mmm 3 lookupfile2
pqr

关于awk - 使用 awk 进行表查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com