编辑大型文本文件的第一行

编辑大型文本文件的第一行

我有一个巨大的文本文件,太大了,无法将其全部分页到内存中。我需要对这个文本文件进行的操作就是编辑第一行(它是一个 CSV 文件,我需要修改标题)。

有没有一种简单的方法可以在 bash 中做到这一点?

答案1

您可以使用less查看要编辑的内容并sed进行更改。这样,您无需加载整个文件即可进行编辑。

另一种方法是拆分文件,编辑并再次合并:

split -b 10000k <file>

and to join:

cat xa* > <file>

答案2

如果你的修改改变了文件的长度,则需要重写整个文件,例如这次讨论就 SO 而言。您可能应该考虑将数据保存到数据库中。

记住这一点,您可以使用 sed 流式编辑文件。要替换第一行,请执行以下操作(GNU sed):

< oldfile sed '1c\new_heading' > newfile

相关内容