一个很奇怪的 awk 问题

2016-05-27 00:12:04 +08:00
 feather12315

countries.data

4.2.2.awk

countries.data是测试数据

4.2.2.awk是测试脚本

当我输入

awk -f 4.2.2.awk countries.data

没有反应

但是我这样输入

awk '
# info - print information about country
#   usage: info country-name

BEGIN {
    FS = "\t"
}

$1 ~ /'$1'/ {
    printf("%s:\n", $1)
    printf("\t%d million people\n", $3)
    printf("\t%.3f million sq. mi.\n", $2/1000)
    printf("\t%.1f people per sq. mi.\n", 1000*$3/$2)
}' countries.data

会出现正常的结果。

问题:

1.这两种输入有什么区别吗?

2.$1 ~ /'$1'/, /'$1'/ 不明白含义。

找了半天,并没有找到答案。。。

1104 次点击
所在节点    问与答
2 条回复
fcicq
2016-05-27 00:28:16 +08:00
第二种方式下引号的转义真的正确吗? 然后注意 mawk / gawk 有可能有细节区别. 这个地方味道确实不好, 不应该硬去追究的.
feather12315
2016-05-27 09:10:49 +08:00
@fcicq thanks 。 是对的,可以输出。 这是 gawk 。 来源于 [awk 程序设计语言]( https://github.com/wuzhouhui/awk) 中 4.2 的第二个程序。 当初看到这里,很困惑,就想搞明白。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/281556

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX