问题标签 [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 投票
10 回答
42139 浏览

shell - 如何使用带有 shebang 的 awk 的多个参数(即 #!)?

我想使用 shebang执行一个gawk脚本。--re-interval“天真”的做法

不起作用,因为 gawk 是用第一个参数调用的"--re-interval -f"(没有在空格周围分割),它不理解。有解决方法吗?

当然,您可以不直接调用 gawk 而是将其包装到拆分第一个参数的 shell 脚本中,或者制作一个 shell 脚本,然后调用 gawk 并将脚本放入另一个文件中,但我想知道是否有办法做这在一个文件中。

shebang 行的行为因系统而异——至少在Cygwin中,它不会用空格分割参数。我只关心如何在这样的系统上执行此操作;该脚本并不意味着可移植。

0 投票
1 回答
1683 浏览

perl - 需要一个脚本来将 PIX/ASA 日志格式化为 CSV

我正在做一个项目来将服务器上的各种解析为csv。有没有人有一个好的 perl 脚本或 gawk 语句可以将标准 PIX/ASA 日志解析为 CSV...

谢谢。

0 投票
4 回答
2794 浏览

regex - 使用 awk 将特定子字符串与正则表达式匹配

我正在处理一个特定的文件名,并且需要从中提取信息。

文件名的结构类似于:“20100613_M4_28007834.005_F_RANDOMSTR.raw.gz”

使用 RANDOMSTR 是一个最多 22 个字符的字符串,其中可能包含(或不包含)格式为“-W[0-9].[0-9]{2}.[0-9]{3}”的子字符串。该子字符串还具有以“-W”开头的独特功能。

我需要提取的信息是没有这个可选子字符串的 RANDOMSTR 的子字符串。

我想在 bash 脚本中实现这一点,到目前为止,我发现的最佳选择是将 gawk 与正则表达式一起使用。到目前为止,我最好的尝试失败了:

预期结果是:

我怎样才能得到想要的效果。

谢谢。

0 投票
3 回答
400 浏览

awk - 在 awk 中处理的每个文件后添加分隔符

我有多个文件,我在其中提取两个分隔符(不包括 START 和 END)之间的文本。处理完每个文件后,我想输出一个分隔符,指示文件已被处理,比如字符串“END”。在每个处理的文件之后,如何将字符串“END”添加到输出中?例如,

假设我有两个包含内容的文件

文件1.txt

文件2.txt

我知道我是否执行以下操作:

我将得到以下输出:

但我想要的输出是:

如何在处理每个文件后将字符串“END”添加到输出中?

0 投票
2 回答
528 浏览

awk - awk 并多次提取特定字段

我有很多带有变量的文件,比如

我想把它们交给 awk 以便 awk 提取它们并给出如下结果:

这个 awk 脚本小菜一碟:

我这样称呼它:

除非多个变量在同一行,否则一切正常。在这种情况下,我得到:

而我想要:

知道我可以/应该怎么做吗?当然,如果您有其他解决方案(使用 sed 或其他),那对我来说没问题!

非常感谢!

0 投票
1 回答
139 浏览

gawk - gawk 简单的程序差异

给定以下输入:

我需要加入以 5 个空格开头的行。以下简单的 gawk 命令首先过滤白色起始行,另一个去除空白,它按预期工作(我知道有很多方法可以做到这一点,我现在正在学习gawk):

我的问题是为什么,如果我将这两个命令合二为一,它不会打印任何东西。我确定这是某处的语法问题:

0 投票
1 回答
685 浏览

gawk - 在 gawk 脚本中启用重新间隔

我使用以下 #! 为 gawk 创建可执行脚本:

#!/usr/bin/gawk -f

但是,如果我想启用区间正则表达式,我似乎无法在 #!中添加--re-interval或添加。-W re-interval

#!/usr/bin/gawk --re-interval -f
#Above doesn't work

有没有办法让脚本在没有命令行参数的情况下激活此选项,或者有更好的方法输入参数以使其工作?

如果这对您的解决方案很重要,我正在使用 cygwin

0 投票
5 回答
15468 浏览

awk - 使用 AWK 对关联数组进行排序

这是我的数组(gawk 脚本):

排序后,我需要以下结果:

当我使用“asort”时,索引会丢失。如何在不丢失索引的情况下按数组值排序?(我需要根据它们的值排序索引)

(我只需要使用 awk/gawk 来获得这个结果,而不是 shell 脚本、perl 等)

如果我的帖子不够清楚,这里有另一篇解释相同问题的帖子:http ://www.experts-exchange.com/Programming/Languages/Scripting/Shell/Q_26626841.html )

提前致谢

更新 :

感谢你们俩,但我需要按值排序,而不是索引(我想要根据它们的值排序索引)。

换句话说,我需要这个结果:

不是 :

(我同意,我的例子很混乱,选择的值很糟糕)

从 Catcall 的代码中,我编写了一个有效的快速实现,但它相当难看(我在排序之前连接键和值,并在比较期间拆分)。这是它的样子:

当然,如果您有更干净的东西,我很感兴趣...

谢谢你的时间

0 投票
4 回答
6222 浏览

linux - GAWK 脚本 - 在 BEGIN 部​​分打印文件名

我正在编写一个开始的 gawk 脚本

我通过调用文件,./script file1.html但脚本什么也不返回。有任何想法吗?

0 投票
4 回答
915 浏览

awk - 如何根据模式的一部分用字符串替换模式?

我有以下问题。我正在解释一个输入文件,现在我遇到了这个问题:我需要翻译%%BLANKxx空格。

因此,无论在输入文件中的哪个位置,我发现例如%%BLANK8,我需要%%BLANK88空格、%%BLANK10空格10等替换。