【发布时间】:2018-11-26 15:53:14
【问题描述】:
我正在使用以下命令将文本文件中的所有字符小写。
CORPUSLOWER=$(cat foobar.txt | tr '[:upper:]' '[:lower:]')
echo $CORPUSLOWER > foobar.txt
然而,问题在于 foobar.txt 大约 20gig 大,它只替换了 foobar.txt 文件的一小部分。
我的问题:如何使用 bash 将大文件转换为小写?
【问题讨论】:
-
也许只使用 tr '[:upper:]' '[:lower:]' newfile.txt,使用更少的内存
-
另外,无用的变量捕获。试图将整个文件读入一个 shell 变量,以便您可以将
echo它输出到标准输出是毫无意义的,因为tr本身已经能够将其结果打印到标准输出(实际上并没有太多其他内容)。