linux - 在大型 txt 文件中搜索和查找位置

标签 linux ubuntu sed find grep

我想在 linux 发行版中的大型 txt 文件 (187GB) 中找到一个位置。

txt 文件中的每个条目都受 $$$$ 限制,我想在文件中找到 3396 条目。所以我需要计算 $$$$,然后当它达到 3396 时。

我该如何解决?

问候


好的,我举个例子

TEXT
TEXT

TEXT
TEXT
<TAG>TEXT>

<TAG>
TEXT
TEXT
</TEXT>
$$$$

所以我的条目在文件中看起来像。之间可以有任何字符。在 $$$$ 之后,换行符中的下一个 netry 开始。

现在又是我的问题。我想检测入口限幅器的3396行号

编辑:

我有解决方案:

grep -m 3396 -n '$$$$' FILE

给我行号直到 3396 计数 $$$$。最后一个是我的兴趣线

最佳答案

没有任何示例数据很难正确回答,但您可以尝试以下 awk one-liner 看看是否有效。

awk '{for(i=1;i<=NF;i++) {if ($i=="$$$$") count++; if ($i=="$$$$" && count==3396) print $(i+1);}}' INPUT_FILE

关于linux - 在大型 txt 文件中搜索和查找位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8490431/

相关文章:

java - 使用 shell 脚本启动和终止 java 应用程序 (Debian)

c# - 立即停止所有 SSH 连接

linux - 无法生成 cscope.out 文件

python - 使用 `subprocess.call' 和 `shell=True' 运行命令时不执行 Shell 扩展

linux - Puppet 和 Facter 默认系统事实

bash - 如果远程位置存在相同的现有文件夹名称,则将文件夹中的所有文件移动到新位置

linux - 管道sed不使用ngrep输出到文件

sed - .bash_profile sed :\1 not defined in the RE

linux - 完整 Ubuntu 的 inode 数

sed:从字符串中提取版本号