代码之家  ›  专栏  ›  技术社区  ›  Bob van Luijt

如何在bash中使用cat将大文件小写[[副本]

  •  2
  • Bob van Luijt  · 技术社区  · 7 年前

    我正在使用以下命令将文本文件中的所有字符小写。

    CORPUSLOWER=$(cat foobar.txt | tr '[:upper:]' '[:lower:]')
    echo $CORPUSLOWER > foobar.txt
    

    foobar.txt 大约有20gig大,它只替换了一小部分 文件

    我的问题:如何使用bash将大文件转换为小写文件?

    2 回复  |  直到 7 年前
        1
  •  2
  •   ensc    7 年前

    这应该是可能的

    tr '[:upper:]' '[:lower:]' < foobar.txt | dd of=foobar.txt conv=notrunc
    

    或者(可能更干净),使用临时文件

        2
  •  1
  •   L3viathan gboffi    7 年前

    假设你有 sponge 从moreutils,您可以执行以下操作:

    tr '[:upper:]' '[:lower:]' < foobar.txt | sponge foobar.txt
    

    海绵

    推荐文章