gpt4 book ai didi

linux - 提取长度为 X 且间隔为 Y 行的行

转载 作者:太空狗 更新时间:2023-10-29 11:25:01 25 4
gpt4 key购买 nike

我的测试数据

aa1
bb1
cc1
aa2
bb2
cc2
aa3
bb3
cc3
aa4
bb4
cc4
aa5
bb5
cc5
aa6
bb6
cc6
aa7
bb7
cc7
aa8
bb8
cc8

假设我希望将第 4-6 行 (aa2-cc2) 提取到文件中,然后跳过 6 行并提取第 13-15 行 (aa5-cc5),然后同样跳过 6 行。该过程将重复,直到文件结束。我写了一个 bash 脚本,它适用于小文件。

#!/bin/bash
for i in {2..8..3}; do

sed -n "$((3*i-2))","$((3*i))"p testdata > "$i".part

done

现在我正在处理一个 30 GB 的巨型文件,我的脚本对硬盘不利,因为它会读取同一个文件数千次。我希望通过只读取(并提取我的部分)文件一次来避免硬盘损坏。有没有可以解决我的问题的单行程序?

我不是真正的程序员,所以请忍受我的问题中的任何术语混淆。感谢您的帮助!

最佳答案

只需要一次遍历文件即可。加上一点算术。

awk '{n = NR % 9} 4 <= n && n <= 6' file

关于linux - 提取长度为 X 且间隔为 Y 行的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46955723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com