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的答案。 另见后续问题

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" 任何帮助表示赞赏,在此先感谢!

程序安装后无法find文件

我做了一个程序,使用一个预先创build的文本文件,其中包含一个网站列表。 现在在一些电脑程序工作正常,但在我的朋友电脑它没有。 我检查了我的Windows 7电脑上的2个程序,1个XP,我没有任何错误。 这个程序在XP上用了一段时间,现在我的朋友想把它安装在家里的windows 7电脑上,但是程序在安装程序后没有find这个文件。 这是他得到的错误: System.IO.FileNotFoundException: file not found 'C:\Users\eli\AppData\Roaming\fourmlinks.txt'. file name: 'C:\Users\eli\AppData\Roaming\fourmlinks.txt' 事情是,我把这个文件在主程序文件夹(应用程序文件),它仍然无法find它。 这是程序启动时用来查找文件的代码: sring path = ""; path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\fourmlinks.txt"; System.OperatingSystem osInfo = System.Environment.OSVersion; if (osInfo.Platform == PlatformID.Win32NT) { if (osInfo.Version.Major == 5 && osInfo.Version.Minor != 0) { //running XP //path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\fourmlinks.txt"; path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + […]

在命令行(Windows)中将文本添加到另一个文本文件的开头的最简单的方法

在命令行(Windows)的另一个文本文件的开头添加文本的最简单方法是什么?

在Windows的500k行文件上做dos2unix最好的办法是什么?

问题说明了这一切,我有一个500,000行文件,作为Windows盒子上的自动化构build过程的一部分生成,它被^ M所困扰。 当它出门时,它需要* nix友好,这里最好的方法是什么,有一个方便的代码片段可以为我做这个? 还是我需要编写一个C#或Java应用程序?

是否可以通过串口通过PuTTY发送文本文件的内容

这是我想要做的。 我想通过串口通过PuTTY发送一个文件的文本内容。 我知道扩展存在,如Xmodem和Zmodem,但他们都使用一些校验和协议来确认文件通过端口发送。 不过,我的要求更简单。 我想简单地通过Windows中的串行端口发送一堆文本(在一个文件中)(在Linux下这将是更简单),但我的首选terminal程序是PuTTY。 这可能吗? 是否有另一个terminal程序具有这种types的function?