问题标签 [awk]

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 回答
2691 浏览

linux - 使用 awk 就地编辑

我想在文件顶部添加一行,比如f1使用 awk。
有没有比以下更好的方法?

-iawk在 sed 中有类似选项吗?

0 投票
3 回答
2783 浏览

bash - 如何在 BASH 中执行从文件中获取随机文本的脚本?

我有这样的文件:

啊啊啊

bbb

ccc

ddd

eee


我想在 BASH 中做一个脚本,它可以随机取这个文本文件的行,并将它作为变量或其他东西返回给我。

我听说可以用一些 AWK 来完成。有任何想法吗?

更新:我现在使用这个:

shuf -n 1 文本.txt

谢谢大家的帮助!

0 投票
8 回答
4939 浏览

python - 如何不区分大小写地计算纯文本文件中的唯一术语?

这可以是任何可能在典型的类 unix 系统上可用的高级语言(Python、Perl、awk、标准 unix utils {sort、uniq} 等)。希望它能够足够快地报告 2MB 文本文件的唯一术语总数。

我只需要它来进行快速的完整性检查,因此不需要精心设计。

请记住,不区分大小写。

非常感谢你们。

旁注:如果您使用 Python,请不要使用仅版本 3 的代码。我运行它的系统只有 2.4.4。

0 投票
4 回答
2681 浏览

sed - 在 sed/awk 中对行范围执行操作

如何从 sed/awk 中特定范围的行中提取某些变量?

示例:我想从第 105 行开始的这一部分中提取 .tnsnames.ora 中的主机和端口。

0 投票
5 回答
3576 浏览

regex - 如何在unix日志文件输出中拆分行

我希望能够从日志文件中解析日期和时间。目前它们采用以下格式:

“02/Jun/2009:14:38:50”但我想使用 linux 命令行中可用的东西将它们分隔在不同的列中,以便生成的输出如下所示:

“2009 年 6 月 2 日” “14:38:50”

有人可以说明如何做到这一点吗?

问候

0 投票
4 回答
993 浏览

sed - 拆分 sed/awk 中的剩余字段

我有这行:

并希望将其转换为(在字段 2->n 上添加引号):

0 投票
2 回答
5221 浏览

svn - 是否需要解析 svn 日志以查找特定用户自某个日期以来提交的文件?

如果是这样,以下使用 awk 的单行代码可能会提供有用的模板

0 投票
5 回答
32750 浏览

awk - 如何使用 awk 每 n 行插入一个空行?

我有一个这样的输入文件:

我想使用 awk 每隔几行插入一个空行;例如,每两个:

我怎样才能让 awk 每 n 行在我的文件中放入一个空行?

0 投票
5 回答
4741 浏览

regex - awk/etc.:从文件中提取匹配项

我有一个 HTML 文件,想提取<li></li>标签之间的文本。当然有上百万种方法可以做到这一点,但我认为更多地养成在简单的 shell 命令中这样做的习惯会很有用:

问题是,这会打印所有内容,而我只想在括号中打印匹配项([^>]+)——要么 awk 不支持,要么我无能。后者似乎更有可能。如果您想将提供的正则表达式应用于文件并仅提取指定的匹配项,您将如何做?我已经知道六种其他方式,但我不想让awk这一轮获胜;)

编辑:数据结构不完善,因此使用位置匹配 ( $1, $2, etc.) 是不行的。

0 投票
8 回答
9982 浏览

bash - 我可以链接多个命令并让它们都从标准输入中获取相同的输入吗?

在 bash 中,有没有办法链接多个命令,所有命令都从标准输入获取相同的输入?也就是说,一个命令读取标准输入,进行一些处理,将输出写入文件。链中的下一个命令获得与第一个命令相同的输入。等等。

例如,考虑通过过滤内容将大文本文件拆分为多个文件。像这样的东西:

这显然不起作用,因为第二个 grep 获取第一个 grep 的输出,而不是原始文本文件。我尝试插入三通,但这没有帮助。是否有一些 bash 魔法可以导致第一个 grep 将其输入发送到管道,而不是输出?

顺便说一句,拆分文件是一个简单的例子。考虑拆分(通过模式搜索归档)来自网络的连续实时文本流并将输出写入不同的命名管道或套接字。我想知道是否有一种使用 shell 脚本的简单方法。

(这个问题是我之前的一个清理版本,基于指出不明确之处的回复)