2013-04-06 76 views
0

我有一个大约10GB的大文件。我想替换它的第35列(用;分隔)。由于它是一个巨大的文件,因此在编辑器中打开文件不是一种选择。我想在文件的所有行中进行替换。如何用Unix命令替换大文件中指定列的内容

有人建议我使用Sed,但我还不舒服。有人可以建议一个可以实现相同的unix命令。

+0

您可以使用awk或perl的做到这一点。他们不能编辑文件,他们会创建一个修改后的内容的新文件。 – Barmar 2013-04-06 09:38:23

+1

“没有开放”是不正确的;你打开它并一次读写一行,而不是一次读入整个文件。 – tripleee 2013-04-06 09:45:57

回答

1
awk -F';' '{ $35 = "replacement" }' <oldfile> newfile 
+0

Thanls Barmar。有用。 – user2217783 2013-04-07 10:24:44

0

这可能为你工作(GNU SED):

sed -i 's/[^;]*/replacement/35' file 
0

接受的解决方案并没有为我工作。但帮我找到这个:

awk'{$ 35 =“replacement”;打印$ 0}” <的oldfile> newfile中

为制表符分隔文件