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

bash - 以 bash reverse-search-history 样式搜索文件

我正在尝试编写一个函数,它将以与反向搜索历史相同的方式搜索文件。即用户开始输入,提示更新为第一个匹配,点击一个特殊键旋转通过其他匹配,点击另一个特殊键选择当前匹配。

我为此编写了一个 bash 脚本,但速度非常慢。想知道我是否可以利用其他一些 unix/bash 功能来加快速度。也许使用awk?

任何想法,将不胜感激。

对于这个脚本,TAB 循环匹配,ENTER 选择当前匹配,ESC 结束,BACKSPACE 删除当前搜索中的最后一个字符。(原谅我狡猾的 bash 脚本,我对 bash/unix 比较陌生)

0 投票
2 回答
11649 浏览

awk - 使用 awk 替换两个字符串

我想用文件中的换行符@@替换^和替换。¤¤为此,我编写了下面的代码,但感觉有一个更优雅的解决方案,然后调用 gawk 两次。谁能告诉我有没有?

0 投票
2 回答
1337 浏览

regex - awk match() - 每行多个

我在 gawk 中使用 match() 函数从 HTML 文件中获取链接。正则表达式是这样的:

我似乎无法在最后使用“/g”选项来获得每行多个匹配项?

0 投票
1 回答
141 浏览

bash - Shell 脚本和 gawk 的使用以及算术运算

我有一个制表符分隔的文件,我想对文件中存在的列执行一些数学计算。

让文件名sndf具有$tag一些整数值,我想首先找到第 3 列和第 2 列的值之间的差异,然后将第 4 列的值除以中的值$tag再次将结果除以第 3 列和第 2 列的值的差异,最后结果乘以 100。

该命令将答案写入输出文件 4 次而不是 1 次.....你们都可以提出改进建议吗?谢谢你

解决方案:亲爱的,我已经解决了问题,感谢大家阅读问题并投入时间。

0 投票
1 回答
285 浏览

sed - gawk/sed 的嵌套分隔符问题

我有需要拆分的文本:

我已经尝试过这些变体,但一直被我不想拆分的“内部”分隔符抓住!!:

gawk -F "[" -v RS=","NF{print $0}" text.txt

如何拆分它们(1)首先在主“{”上,忽略内部“{”(2)然后在逗号上,忽略大括号之间的逗号。然后我想只输出一个或两个这样的字段:

suspend_at: '2011-05-12 15:14:02', ev_id: 2666872, ev_type_id: 10744, type_name: '|UK 100|'

提前致谢。

0 投票
2 回答
116 浏览

regex - gawk 中的正则表达式疑问

我的 csv 数据文件是这样的

现在你可以看到我想避免像第 2 行和第 3 行这样的所有数据(即没有空格或数据长度 >= 3)

并将其放在一个名为rejected_list.csv 的文件中,其余的都放在一个名为clean_list.csv 的文件中

因此这是我的 gawk 脚本

我的问题是这个脚本无法识别 '\S' 字符集(除空格外的所有字母).. 它选择所有以 S 开头或具有 S 的单词并拒绝其余单词

像 /([AZ])/ 这样的简单正则表达式代替 /s 可以完美运行,但是当我将限制设置为 {3,} 时,脚本失败..

我已经尝试了正则表达式与'*'、'+'等的各种组合,但我无法得到我想要的......

谁能告诉我有什么问题?

0 投票
3 回答
173 浏览

unix - AWK 脚本 - 这个脚本有什么作用?

我需要重复处理这个AWK 脚本,但不知道它在做什么。谁能告诉这个脚本的基本功能是什么?

它需要一个输入文件,并创建一个输出文件,但我无权访问这两个文件来查看它在做什么。它与分隔输入文件中的列的管道分隔符有关。

0 投票
4 回答
9094 浏览

linux - 将字段“N”打印到行尾

我想就我在 awk 中遇到的问题获得帮助或指导。

我有一个超过 5 个字段的制表符分隔文件。我想输出不包括前 5 个字段的字段。

你能告诉我如何编写一个 awk 脚本来完成这个任务吗?

最好的,建峰.mao

请注意以下友好评论:

我的文件中有很多字段。不同的行有不同数量的字段。每行的字段数不是标准的。

0 投票
1 回答
3667 浏览

awk - 表达式中的无效字符 ' ' '

嗨,我有以下 awk 程序

问题是当我执行awk -f make.awk info.txt时,我不知道为什么它会在第 3 行抱怨“ awk ' invalid char ' ' ' in expression ”

你们有谁在这方面比我聪明吗?=)

0 投票
2 回答
282 浏览

awk - 为什么这个 awk 脚本的行为不符合预期?

我有以下测试脚本

并且正在从此文本文件中读取

但它没有打印出我想要的东西,我想要它打印出来

当它实际上只是打印出来时

那么为什么 "DATEd[$3] = $1" 是空的呢?

另外如何检查数组的长度?DATEd.length 在这种情况下不起作用。

谢谢

编辑_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___

所以在@Fredrik 和@geekosaur 的帮助下,我来到了某个地方,现在是最后几个问题

1) 脚本现在看起来像这样

并给出以下输出

但我希望它看起来像这样

IE 被排序并删除最后一个 ',' 字符之前的最后一个关闭 ']' 字符。这有可能以一种简单的方式接受吗?=)

谢谢 =)

编辑 3 最终结果_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ____

使用了@geekosaur 和@Fredrik 贡献的组合 =)