Questions tagged «large-files»

6
在大型文件中将猫的第X行移到第Y行
说我有一个巨大的文本文件(> 2GB),我只是想cat行X至Y(如57890000至57890010)。 据我了解,我可以通过管道做head成tail或反之亦然,即 head -A /path/to/file | tail -B 或者 tail -C /path/to/file | head -D 其中A,B,C并D可以从文件中的行数来计算,X和Y。 但是这种方法有两个问题: 你必须计算A,B,C和D。 该命令会pipe彼此有更多比我有兴趣阅读(例如,如果我在一个巨大的文件中间读短短的几行)线 有没有一种方法可以让Shell正常工作并输出所需的行?(同时仅提供X和Y)?
132 tail  cat  large-files  head 

14
将字符串替换为一个巨大的(70GB)一行文本文件
我有一个巨大的(70GB),一行,文本文件,我想替换其中的一个字符串(令牌)。我想<unk>用另一个虚拟令牌替换该令牌(手套发行)。 我试过了sed: sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new 但是输出文件corpus.txt.new有零字节! 我也尝试使用perl: perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new 但是我遇到了内存不足的错误。 对于较小的文件,以上两个命令均有效。 如何替换这样的文件字符串? 这是一个相关的问题,但是没有一个答案对我有用。 编辑:将文件分成10GB(或其他大小)的块,然后分别应用于sed每个文件,然后与它们合并,该cat怎么办?那有意义吗?有没有更优雅的解决方案?

9
如何删除文本文件中的重复行?
我的一个巨大的文本文件(最多2 GiB)包含其中每一行的大约100个精确重复项(对我而言,这是无用的,因为该文件是类似CSV的数据表)。 我需要的是在保持原始序列顺序的同时删除所有重复(最好是牺牲掉,但这可以显着提高性能)。结果,每一行都是唯一的。如果有100条相等的行(通常重复项分布在文件中并且不会成为邻居),则只剩下其中一种。 我已经用Scala编写了一个程序(如果您不了解Scala,请考虑使用Java)来实现此目的。但是,也许有更快的C编写的本机工具能够更快地做到这一点? 更新:awk '!seen[$0]++' filename只要文件接近2 GiB或更小,该解决方案对我来说似乎就很好,但是现在我要清理8 GiB文件就不再起作用了。在配备4 GiB RAM和配备4 GiB RAM和6 GiB交换功能的64位Windows 7 PC的Mac上,似乎占用了无限空间。鉴于这种经验,我并不热衷于在具有4 GiB RAM的Linux上进行尝试。

11
有没有办法就地修改文件?
我有一个相当大的文件(35Gb),我想就地过滤该文件(即我没有足够的磁盘空间来存放另一个文件),特别是我想grep并忽略某些模式-有没有办法这样做而无需使用其他文件? 假设我要过滤掉所有包含foo:例如...的行


3
通过ssh传输大文件(8 GB)
我尝试过使用SCP,但显示“文件大小为负数”。 >scp matlab.iso xxx@xxx:/matlab.iso matlab.iso: Negative file size 还尝试使用SFTP,在传输2 GB的文件之前可以正常工作,然后停止: sftp> put matlab.iso Uploading matlab.iso to /home/x/matlab.iso matlab.iso -298% 2021MB -16651.-8KB/s 00:5d o_upload: offset < 0 知道有什么问题吗?SCP和SFTP不支持大于2 GB的文件吗?如果是这样,那么如何通过SSH传输更大的文件? 目标文件系统是ext4。Linux发行版是CentOS 6.5。文件系统当前具有(可访问)大型文件(最大100 GB)。
27 scp  sftp  large-files 


2
为什么ext4卷中的这些文件会碎片化?
我ext4在(磁性)硬盘驱动器上有一个900GB的分区,没有缺陷,也没有坏扇区。除空lost+found目录外,该分区完全为空。该分区是使用默认参数格式化的,除了将保留的文件系统块的数量设置为1%。 我使用下载了〜900MB文件xubuntu-15.04-desktop-amd64.iso到分区的安装点目录wget。下载完成后,我发现文件分为四个片段: filefrag -v /media/emma/red/xubuntu-15.04-desktop-amd64.iso Filesystem type is: ef53 File size of /media/emma/red/xubuntu-15.04-desktop-amd64.iso is 1009778688 (246528 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 32767: 34816.. 67583: 32768: 1: 32768.. 63487: 67584.. 98303: 30720: 2: 63488.. 96255: 100352.. 133119: 32768: 98304: 3: 96256.. 126975: 133120.. 163839: …

1
每个目录的文件数
我有一个包含约100000个小文件的目录(每个文件是1-3行,每个文件是一个文本文件)。目录的大小不是很大(<2GB)。该数据位于专业管理的NFS服务器中。该服务器运行Linux。我认为文件系统是ext3,但我不确定。另外,我没有对该服务器的root访问权限。 这些文件是我无法控制的大规模科学实验的输出。但是,我必须分析结果。 此目录中的任何I / O操作/处理都非常非常慢。打开文件(在python中为fopen),读取打开的文件,关闭文件都非常缓慢。在bash ls,du等中不起作用。 问题是: Linux中某个目录中可以进行处理,打开,读取等操作的最大文件数量是多少?我知道答案取决于许多因素:fs类型,内核版本,服务器版本,硬件等。如果可能的话,我只是想凭经验而定。


2
创建文件系统时的大文件功能
使用-T largefile标志在为包含flac格式的视频和音频等大文件的分区创建文件系统时有用吗? 我测试了带有该标志且没有该标志的同一个分区,并使用tune2fs -l [partition],我检入了“文件系统功能”,它们都启用了“ large_file”。因此,不必使用-T标志largefile吗?

3
Emacs:从一个巨大的文件打开一个缓冲区,其中X到Y行之间的所有行
本着与其他问题相同的精神:将X行的Y行指向一个大文件中的Y行: 有没有一种方法可以从Emacs内部打开(并显示在缓冲区上)大型文本文件中的给定行集(例如line X和之间的所有行Y)? 例如,打开并在缓冲区中显示文件中第57890000行和57890010行之间的所有行 huge.txt 更新: 我对至少可以以只读方式打开行(仅出于显示目的)的解决方案感兴趣,尽管如果我还可以编辑行(并将其保存到原始文件中)将非常有用。

2
大型单行文件上的基本sed命令:无法重新分配内存
我有一个250 MB的文本文件,全部在一行中。 在此文件中,我想a用b字符替换字符: sed -e "s/a/b/g" < one-line-250-mb.txt 它失败并显示: sed: couldn't re-allocate memory 在我看来,此类任务可以内联执行而无需分配太多内存。 是否有更好的工作工具或更好的使用方法sed? GNU sed版本4.2.1 Ubuntu 12.04.2 LTS 1 GB RAM

4
如何在许多大文件中找到重复的行?
我有约3万个文件。每个文件包含约10万行。一行不包含空格。单个文件中的行已排序并免费重复。 我的目标:我想找到两个或多个文件中所有重复的行,以及包含重复条目的文件的名称。 一个简单的解决方案是: cat *.words | sort | uniq -c | grep -v -F '1 ' 然后我会运行: grep 'duplicated entry' *.words 您看到更有效的方法了吗?

1
在Linux上查看大图
我需要在Linux上查看大(50000x40000 px)png图像。不幸的是,大多数工具(例如eog,convert等)崩溃或失败,并提示内存太少。 有没有办法查看此图像(我希望同时查看调整大小后的图像和详细信息)?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.