Articles of 文本文件

用文本文件中的行号从另一个文件中删除行号

我有一个文本文件,包含一个巨大的行号列表,我必须从另一个主文件中删除。 这是我的数据看起来像 lines.txt 1 2 4 5 22 36 400 … 和documents.txt string1 string2 string3 … 如果我有一个简单的行号我可以很容易地使用 sed -i '1d,4d,5d' documents.txt 。 但是我需要删除很多行号。 另外,我可以使用bash / perl脚本将行号存储在数组中,并回显不在数组中的行。 但是我想知道是否有一个内置的命令来做到这一点。 任何帮助将不胜感激。

是python自动并行IO和CPU或内存绑定部分?

这是前一个的后续问题。 考虑一下这个代码,它比上一个问题中的代码要less一些 (但是比我的代码要简单得多) import sys data=[] for line in open(sys.argv[1]): data.append(line[-1]) print data[-1] 现在,我期待更长的运行时间(我的基准文件是65150224行),可能要长得多。 事实并非如此,与以前一样,在2分钟内运行! 它是data.append()非常轻量级? 我不这么认为,于是我写了这个假代码来testing它: data=[] counter=0 string="a\n" for counter in xrange(65150224): data.append(string[-1]) print data[-1] 这运行在1.5到3分钟(运行间有很大的差异) 为什么我不能在以前的课程中学习3.5到5分钟? 显然,data.append()与IO并行发生。 这是个好消息! 但是它是如何工作的? 它是一个logging的function? 是否有我的代码的要求,我应该尽可能使其工作(除了负载平衡IO和内存/ CPU活动)? 还是只是简单的缓冲/caching行动? 再次,我标记了“linux”这个问题,因为我只对linux特定的答案感兴趣。 如果您认为值得这样做,那么可以随意给予操作系统不可知论者,甚至是其他操作系统的答案。

在所有子目录上使用wc来计算行数

如何计算所有子目录中所有文件的所有行与wc ? cd mydir wc -l * .. 11723 total man wcbuild议wc -l –files0-from=- ,但是我不知道如何生成所有文件的列表作为NUL-terminated names find . -print | wc -l –files0-from=- 不工作。

分割gzip日志文件,而不将未解压缩的分割存储在磁盘上

我有一个反复的任务,将一组大的(每个大约1-2吉比特)gzip的Apache日志文件分成几个部分(比如说500K行)。 最后的文件应该再次压缩以限制磁盘的使用。 在Linux上我通常会这样做: zcat biglogfile.gz | split -l500000 生成的文件将被命名为xaa,xab,xac等。所以我这样做: gzip x* 这种方法的效果是,作为一个中间结果,这些巨大的文件被临时存储在磁盘上。 有没有办法避免这种中间磁盘使用? 我可以(以类似于xargs的方式)通过命令(如gzip)将输出分开pipe道,并重新压缩输出? 还是我看错了方向,有没有更好的方法来做到这一点? 谢谢。

是否有可能加快python IO?

考虑这个python程序: import sys lc = 0 for line in open(sys.argv[1]): lc = lc + 1 print lc, sys.argv[1] 在我的6GB文本文件上运行,大约在2分钟内完成。 问题: 可以加快吗? 请注意,同一时间需要通过: wc -l myfile.txt 所以,我怀疑我的问题只是一个普通的“不”。 还要注意,我的真正的程序正在做一些比计算线更有趣的东西,所以请给出一个通用的答案, 而不是行计数技巧(如保持文件中的行数元数据) PS:我标记了“linux”这个问题,因为我只对linux特定的答案感兴趣。 如果你有它们,可以随意给OS-agnostic,甚至是其他OS的答案。 另见后续问题

在没有索引的情况下search文件内的string的工具

我不得不在一个令人难以置信的旧的应用程序中改变一些连接string,编程人员认为用遍布整个连接string来整个应用程序是一个好主意。 Visual Studio的“当前项目”search非常慢,我不信任Windowssearch。 那么,什么是最好的免费,非索引文本search工具呢? 它所要做的就是返回一个包含文件夹及其子文件夹内所需string的文件列表。 我正在运行Windows 2003 Server。

将文本文件过滤为新的文本文件

对不起,这里的虚拟问题。 在Windows下,我希望能够过滤一个.txt文件到一个新的。 过滤所有包含特定string的行。 我知道这可能是一个非常容易的,但真的很感激,请指点。

如何使用常规Windows命令行在文本文件中增加值?

我想为我的一个项目保留一个“编译计数器”。 我想一个快速和肮脏的方法来做到这一点将保持一个文本文件中有一个普通的数字,然后只需要一个小脚本来增加这个每次我编译。 我将如何去做这个使用常规的Windows命令行? 我真的不想安装一些额外的shell来做到这一点,但如果你有任何其他超级简单的build议,可以做到这一点,他们也很自然地赞赏。

join多个文本文件

我有四个文本文件,如附图所示。 我用来join和巩固它们的广义脚本是: @echo off setlocal enableDelayedExpansion :: Clear any existing $ variables for /f "delims==" %%A in ('"set $ 2>nul"') do set "%%A=" :: Load data set "cnt=0" set "blank= " set "null= NULL" set "width=8" set "labelWidth=22" set "lineWidth=0" set "lookup= FreePhysicalMemory:2 TotalVisibleMemorySize:3 CPULoadPercentage:4" for %%F in (server1.txt server2.txt server3.txt server4.txt) do ( set […]

Windows批处理:从文本文件中设置variables

我目前正在寻找一种方法来设置从txt文档中的链接的Windowsbatch file中的variables。 例如,如果文本文件如下所示: http://website1.com http://website2.com http://website3.com 我希望可以把它们输出到variables中。 例: set var1="Line one of text file, ex: http://website1.com" set var2="Line two of text file, ex :http://website2.com" set var3="Line three of text file, ex: http://website3.com" 任何帮助表示赞赏,在此先感谢!