问题标签 [gawk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
183 浏览

csv - awk:如何切割2个字段的相似部分,然后得到剩余部分的差异?

假设我有 2 个字段以微秒为单位显示纪元时间:

1318044415123456,1318044415990056

我想做的是:

  1. 从两个字段中删除公共部分:“1318044415”
  2. 得到剩余部分的差值:990056 - 123456 = 866600

我为什么要这样做?因为 awk 使用浮点 IEEE 754 但不是 64 位整数,所以我需要以微秒为单位获取 2 个事件的纪元时间差异。

谢谢你的帮助!

编辑:

最后我找到了 Awk 在 Snow Leopard 10.6.8 上可以处理的最大数量:9007199254740992

试试这个:echo '9007199254740992' | awk -F ',' '{print $1 + 0}'

awk 的版本是20070501(生产者awk --version

0 投票
3 回答
2124 浏览

algorithm - 如何在不保存整个数组且空间不变的情况下计算排序数组的确切中位数?

我需要从输入读取排序数组到 awk/gawk 并获得中位数。我不想存储整个数组并试图获得用于计算的恒定空间。

你知道有什么算法这样做吗?给定数组已排序但其大小未知。

先感谢您!

0 投票
2 回答
950 浏览

lint - 如何创建一个空数组

更新

下面的原始描述有很多错误;gawk lint 不会抱怨用作 RHS 的未初始化数组in。例如,以下示例没有给出错误或警告。我没有删除这个问题,因为我即将接受的答案给出了使用split空字符串创建空数组的好建议。


原始问题

我的很多 awk 脚本都有如下结构:

结果gawk --lint

警告:对未初始化变量“thread_start”的引用

所以我在 BEGIN 块中初始化如下。但这看起来很杂乱。有没有更优雅的方法来创建一个零元素数组?

0 投票
1 回答
636 浏览

awk - 将字段(位置变量)的值分配给 gawk/awk 中的用户定义变量

我正在创建一个名为“size”的变量,并尝试从 gawk 位置变量为其分配一个值。但是,这似乎不起作用。在下面的示例中,我试图将字段 4 的值存储到变量“大小”中。当我打印可变大小时,将打印整行而不是仅打印字段 4。

如何将归档的值保存到变量中以备后用?

输出如下: 住在大城市

我想看看这个:

大的

0 投票
3 回答
1440 浏览

regex - 使用 awk 正则表达式捕获插入符号 (^)

我有这种格式的输出:

我正在尝试使用 awk 正则表达式来捕获以下内容:

这不会特别难,只是我无法弄清楚如何正确转义,^所以它不会被解释为新行或不是。以下是我到目前为止的内容,它几乎可以工作,除了打印出来:

这是代码:

0 投票
4 回答
491 浏览

text - 从文件中删除行

我有一个类似的问题: Delete lines from file with SED or AWK

如何删除以 3 和 5 开头的行以及此文件中介于两者之间的所有内容:

如果答案在其他地方很明显,我将删除这个问题。

如果它看起来像这样怎么办:

0 投票
1 回答
775 浏览

regex - 匹配十六进制字符串 GAWK

我想使用 gawk 匹配一个 32 个字符的十六进制字符串。

我发现我可以使用 /[A-F0-9]{32}/ ,但前提是我使用 --posix 或 --re 运行 gawk

有没有没有命令行选项的替代方案?(除了重复 [A-F0-9] 32 次!)

0 投票
6 回答
42267 浏览

awk - awk 中的字段分隔符可以包含多个字符吗?

我可以使用由多个字符组成的字段分隔符吗?就像我想分隔它们之间包含引号和逗号的单词。

“学校”、“大学”、“城市”

所以在这里我想将我的FS设置为“,”。但是当我这样定义我的 FS 时,我得到了有趣的结果。这是我的代码片段。

0 投票
1 回答
74 浏览

gawk - 如何跳过打开/关闭范围模式的记录?

这可行,但它会打印第一条和最后一条记录,我想省略。怎么做?

它说:“打开范围模式的记录和关闭范围模式的记录都匹配范围模式。如果您不想对这些记录进行操作,您可以在规则的操作中编写if语句来区分它们你感兴趣的记录。” 但没有例子。我尝试了类似的东西, gawk '/<Lexer>/,/<\/Lexer>/' {1,FNR-1} file 但它不起作用。如果您有更好的方法来做到这一点,而不使用 awk,请说出来。

0 投票
3 回答
2143 浏览

regex - awk 和正则表达式的简单问题

为什么我不能得到任何输出?

谢谢你。