gpt4 book ai didi

shell - 在 unix shell 中删除一个非常大的文件的前 n 个字符

转载 作者:行者123 更新时间:2023-12-04 05:59:46 26 4
gpt4 key购买 nike

我有一个大文本文件(~3GB)。
在创建它时,我犯了一个错误和 前几个 (并非所有)字符 仅第一行 错了。第一行中的其余字符是正确的。所有其他行也是正确的。我的,很简单,问题是:

如何删除这么大文件的前 n 个字符? 我不想删除整个第一行,只有前 n 个字符。我的要求是:

  • 不替换所有剩余的行。
  • 无需阅读整个文件。
  • 理想情况下,使用 unix shell 命令。

  • 我试过 sed,但它取代了第一行并复制了其余的所有内容......也许我可以使用“退出”选项?
    当然,我可以再次创建文件,而不会犯那个错误......

    最佳答案

    您可以使用:

    sed -i.bak -r '1s/^.{10}//' file

    这将创建一个备份 file.bak 并从第一行中删除前 10 个字符。注意 -i 也可以单独使用,在没有备份的情况下进行就地编辑。

    测试

    原始文件:
    $ cat a
    1234567890some bad data and here we are
    blablabla
    yeah

    让我们:
    $ sed -i.bak -r '1s/^.{10}//' a
    $ cat a
    some bad data and here we are
    blablabla
    yeah
    $ cat a.bak
    1234567890some bad data and here we are
    blablabla
    yeah

    关于shell - 在 unix shell 中删除一个非常大的文件的前 n 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26400118/

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